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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String构造方法带字符编码集的作用相关的知识,希望对你有一定的参考价值。

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构造方法带字符编码集的作用的主要内容,如果未能解决你的问题,请参考以下文章

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

String构造方法和字符集编码转换

计算机的字符与编码集

带开关的 Android 编码(字符串)

Python不归路_字符编码操作

对字符串的基本操作(查看,转成编码,截取,拼接)