关于字符串编码的问题 java程序从外部的一个文本文件中读入一个中文字符串。结果显示乱码?请教各位转码的方法?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看这个 应该能对你有点帮助http://zjnubridge.blogdriver.com/zjnubridge/664574.html 可以看看这个函数:public String getChinese(String str){ try { String str1=str;// byte[] str2=str1.getBytes("ISO-8859-1"); byte[] str2=str1.getBytes("ISO8859-1"); String temp=new String(str2);; return temp; } catch(Exception e) { return null; }} http://www.regexlab.com/zh/encoding.htm String string;string = new String( string.getBytes("iso-8859-1"), "GB2312") 问题的关键不是在 "如何转码",而是在于 "从文本文件中读入":如果文件是 GB 编码,则应该:Reader in = new InputStreamReader(new FileInputStream("d:\\a.txt"), "GBK");而不要直接使用 FileReader。正如 kingofworl(良辰美景虚度) 所说,请参阅:http://www.regexlab.com/zh/encoding.htm 通过阅读http://www.regexlab.com/zh/encoding.htm的内容。现在还针对我的问题请教大家。我是在一个prop.properties文件中指定了一个键值对比如:keyword=贷款,金融风险,测试test,硬盘,搜索将来在java应用程序中,读入以后直接打出这个键值如下:′???,?eèú·???,2aê?test,ó2?ì,???÷,′???,?eèú·???,ó2?ì,???÷我使用string = new String( string.getBytes("iso-8859-1"), "GB2312")转码后发现是正确的内容。我的问题是这样,JVM在读入的时候,肯定要经过一个字节组-->字符流的转换,在办出的时候也肯定会有个字符流-->字节流的转换。哪位给我讲讲“贷款,金融风险,测试test,硬盘,搜索”怎么变成上面的乱码的?谢谢大家! properties 文件的 getProperty() 方法,都是按照 iso8859-1 来阅读的(也就是说:按 1字节 => 1字符 来读的)。Properties 文件的正规使用方法,是把中文使用 "\uXXXX" 的格式放入,而不是直接写中文的 GBK 字节。比如:featureName=Eclipse PDE \u63d2\u4ef6\u5f00\u53d1\u8005\u8d44\u6e90请搂主查阅一下 Properties 的资料。或者搂主可以使用 java.util.Properties 的 save 方法看看效果。 怎么用java读取网页上的数据,比如大盘数据 java是否可以显示实现引用传递 关于包和类路径变量等等的问题,希望高手帮帮我解答我的疑惑,谢谢~~~~~ 200分求助:SWT中定制TreeView的问题。(解决后,另开贴送分) 围棋问题 有个大家能帮我调节下程序么?谢谢 请教高手帮忙,文本换行与JSP页面换行的转变。解决必给高分!! 为什么要托一个窗口大小button才出来 连接池问题,大家来帮帮忙呀!! JDK(cafe)哪儿买啊 国内哪里有jdk的源码可down,多谢! N个不同整数相加之和为10000的组合个数。 使用POI导出到EXCEL时,导出的数据量大时,EXCEL文件出错
public String getChinese(String str)
{
try
{
String str1=str;
// byte[] str2=str1.getBytes("ISO-8859-1");
byte[] str2=str1.getBytes("ISO8859-1");
String temp=new String(str2);;
return temp;
}
catch(Exception e)
{
return null;
}
}
string = new String( string.getBytes("iso-8859-1"), "GB2312")
Reader in = new InputStreamReader(new FileInputStream("d:\\a.txt"), "GBK");而不要直接使用 FileReader。正如 kingofworl(良辰美景虚度) 所说,请参阅:
http://www.regexlab.com/zh/encoding.htm
我是在一个prop.properties文件中指定了一个键值对比如:
keyword=贷款,金融风险,测试test,硬盘,搜索
将来在java应用程序中,读入以后直接打出这个键值如下:
′???,?eèú·???,2aê?test,ó2?ì,???÷,′???,?eèú·???,ó2?ì,???÷
我使用string = new String( string.getBytes("iso-8859-1"), "GB2312")转码后发现是正确的内容。
我的问题是这样,JVM在读入的时候,肯定要经过一个字节组-->字符流的转换,在办出的时候也肯定会有个字符流-->字节流的转换。哪位给我讲讲“贷款,金融风险,测试test,硬盘,搜索”怎么变成上面的乱码的?谢谢大家!
featureName=Eclipse PDE \u63d2\u4ef6\u5f00\u53d1\u8005\u8d44\u6e90请搂主查阅一下 Properties 的资料。或者搂主可以使用 java.util.Properties 的 save 方法看看效果。