码迷,mamicode.com
首页 > 其他好文 > 详细

String构造方法带字符编码集的作用

时间:2017-09-13 01:36:19      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:java charset

java使用的有unicode默认字符编码集(刚搜了下,好像是系统默认的字符编码Charset.defaultCharset()),所以直接new String("测试".getBytes(),charset)是没有意义的。

在读取外部数据的时候,才是使用字符编码集的意义。

InputStream is;

byte[] b = new byte[is.available()];

is.read(b);

String s = new String(b,charset);

如果外部文件不是默认的字符编码集,加上字符编码集就可以读到正确的文件了。

如读取一个txt文件的内容

BufferedReader fReader = new BufferedReader(new FileReader(fileName));

fReader.readLine();

如果字符编码不对读取到的可能就是乱码

new String(fReader.readLine().getBytes(),charset)

这样就不是乱码了


或者可以使用如下这种方式

BufferedReader fReader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName),charset));

fReader.readLine();

这样就能读取到非乱码的字符了


同理输出的时候,如果客户端的默认编码集不一直,输出的时候也要加上设置的字符编码


写到后面好像发现和标题相关不大啊,意思一样的。。。


String构造方法带字符编码集的作用

标签:java charset

原文地址:http://flybluesky.blog.51cto.com/12904486/1964795

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!