java substring截取中文字符串后乱码,源编码为ISO-8859-1

xiaoxian_fs 2013-04-16 11:21:24
多种方式都尝试了 结果都是乱码!

String str = "中文";String str1 = str.substring(0,1);

System.out.println(str1);//乱码
System.out.println(new String(str1.getBytes(),"ISO-8859-1"));//也是乱码
...全文
1733 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxian_fs 2013-04-16
  • 打赏
  • 举报
回复
引用 7 楼 fangmingshijie 的回复:
你获取下它的长度是多少,不是2就有问题。不是2就String str = "中文";String str1 = str.substring(0,str.length()/2)
是不是因为是ISO-8859-1编码原因,中文长度为2? 学习了!
xiaoxian_fs 2013-04-16
  • 打赏
  • 举报
回复
引用 7 楼 fangmingshijie 的回复:
你获取下它的长度是多少,不是2就有问题。不是2就String str = "中文";String str1 = str.substring(0,str.length()/2)
对就是这问题,为什么会这样啊!解决了!求解释!!!
失落夏天 2013-04-16
  • 打赏
  • 举报
回复
引用 6 楼 xiaoxian_fs 的回复:
引用 1 楼 AA5279AA 的回复:这你编译器设置的问题。 1. Web工程文件编码修改方式 Window -> Preference -> Content types 推荐将Web相关文件的编码都设置为UTF-8 2. Java源文件编码修改方式 Window -> Preference -> Workspace -> Text file enco……
substring 肯定是没有问题的,这个方法还不至于有改变编码格式的功能。唯一的解释就是在你的工具中没有按照适当的的编码格式来读取。 你按照 Window -> Preference -> Workspace -> Text file encoding看看你的默认编码格式是什么
fei1710 2013-04-16
  • 打赏
  • 举报
回复
编译器读取java源文件指定的字符编码跟java源文件的字符编码不一致造成的。 一般在IDE下弄不会有这个问题。 看一下是java源文件是以什么编码保存的,编译器也可以指定编码的。
  • 打赏
  • 举报
回复
你获取下它的长度是多少,不是2就有问题。不是2就String str = "中文";String str1 = str.substring(0,str.length()/2)
xiaoxian_fs 2013-04-16
  • 打赏
  • 举报
回复
引用 1 楼 AA5279AA 的回复:
这你编译器设置的问题。 1. Web工程文件编码修改方式 Window -> Preference -> Content types 推荐将Web相关文件的编码都设置为UTF-8 2. Java源文件编码修改方式 Window -> Preference -> Workspace -> Text file encoding Windows平台默认为GBK,
问题出在substring不是编码设置,是在截取字符串的时候编码出现了问题!
xiaoxian_fs 2013-04-16
  • 打赏
  • 举报
回复
引用 3 楼 fangmingshijie 的回复:
改为utf8不就没事了,或者 System.out.println(new String(str1.getBytes("ISO-8859-1"),"utf8"));/
主要问题应该不在这里吧,乱码是因为substring截取了字符串,不截取就正常!
ittoto 2013-04-16
  • 打赏
  • 举报
回复
<Connector URIEncoding="UTF-8" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="8081" redirectPort="8443" maxPostSize="0"/>
在tomcat中配置编码,
  • 打赏
  • 举报
回复
改为utf8不就没事了,或者 System.out.println(new String(str1.getBytes("ISO-8859-1"),"utf8"));/
Inhibitory 2013-04-16
  • 打赏
  • 举报
回复
ISO-8859-1 不支持中文
失落夏天 2013-04-16
  • 打赏
  • 举报
回复
这你编译器设置的问题。 1. Web工程文件编码修改方式 Window -> Preference -> Content types 推荐将Web相关文件的编码都设置为UTF-8 2. Java源文件编码修改方式 Window -> Preference -> Workspace -> Text file encoding Windows平台默认为GBK,

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧