黑马程序员技术交流社区

标题: 关于ANSI字符集和UTF-8字符集文本操作的问题. [打印本页]

作者: 折纸时代    时间: 2013-2-16 12:55
标题: 关于ANSI字符集和UTF-8字符集文本操作的问题.
写了个小程序,把文本保存的字符串位置进行调整并添加"="形成properties文件.

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

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

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

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

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

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

百思不得其解啊..  
作者: 折纸时代    时间: 2013-2-17 09:31
来个朋友帮下啊...   OTL ~~
作者: 奚华    时间: 2013-2-17 10:17
你把源代码贴出来看看,我猜你读文件的时候没有处理好字符编码,split方法是用的是unicode编码不会出错,应该是你读文件时编码弄错了!
作者: 折纸时代    时间: 2013-2-17 18:39
奚华 发表于 2013-2-17 10:17
你把源代码贴出来看看,我猜你读文件的时候没有处理好字符编码,split方法是用的是unicode编码不会出错,应 ...

我是读的UTF-8..  难道split只能读unicode么?      OTL~~!
作者: 奚华    时间: 2013-2-18 15:55
司懿卓 发表于 2013-2-17 18:39
我是读的UTF-8..  难道split只能读unicode么?      OTL~~!

java中String、char使用的是unicode也就是utf16,所以String的所有方法处理utf16
作者: 折纸时代    时间: 2013-2-26 11:05
奚华 发表于 2013-2-18 15:55
java中String、char使用的是unicode也就是utf16,所以String的所有方法处理utf16

谢谢啦..  长个见识..  :lol




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2