A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

写了个小程序,把文本保存的字符串位置进行调整并添加"="形成properties文件.

比如:  你好啊-nihaoa  转换成 nihaoa=你好啊

因为是给linux系统使用的文本,所以需要转码成UTF-8..  

问题出现了. 通过split切割存入数组,再次取出各索引的元素时,报角标越界异常.

打印了下UTF-8编码下数组的长度  有2的 也有1的.  这算是问题所在了.

但是把文本编码转换成ANSI编码, 数组长度全部为2..  程序运行正常.

为什么一串字符串在不同编码下,被split方法切割后,还有这样的异常??   

百思不得其解啊..  

5 个回复

倒序浏览
来个朋友帮下啊...   OTL ~~
回复 使用道具 举报
你把源代码贴出来看看,我猜你读文件的时候没有处理好字符编码,split方法是用的是unicode编码不会出错,应该是你读文件时编码弄错了!
回复 使用道具 举报
奚华 发表于 2013-2-17 10:17
你把源代码贴出来看看,我猜你读文件的时候没有处理好字符编码,split方法是用的是unicode编码不会出错,应 ...

我是读的UTF-8..  难道split只能读unicode么?      OTL~~!
回复 使用道具 举报
司懿卓 发表于 2013-2-17 18:39
我是读的UTF-8..  难道split只能读unicode么?      OTL~~!

java中String、char使用的是unicode也就是utf16,所以String的所有方法处理utf16
回复 使用道具 举报
奚华 发表于 2013-2-18 15:55
java中String、char使用的是unicode也就是utf16,所以String的所有方法处理utf16

谢谢啦..  长个见识..  :lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马