字符是没有编码的。字节的个数受编码的影响。编码是属于文件的。
例如:String str=”康会来“
这是一段字符,不管你是GBK,还是UTF-8,他都在这。
只有当它被(字符是被动)生成(编码)为byte时,才需要编码格式。不同的编码格式汉字所占字节的个数不同,所以最终文件的大小会受影响。这也是为什么在流操作时,只有在字节流和字符流之间的桥梁中才需要指明编码。InputStreamReader,OutputStreamWriter
所以,字符串不存在什么编码转换,网上所有有关字符串编码转换的文章都是错误的。
文件才有编码转换,而且源文件的编码格式和目标文件的编码格式我们都要知道才行。
当我们要写入的文件编码为GBK时,我们只需要把str按照gbk编码成的byte[]写入文件即可。
当我们要写入的文件编码为UTF-8时,我们只需要把str按照UTF-8编码成的byte[]写入文件即可。
我们的.java文件也是文件,所以也有文件编码。我们在.java中声明String str=”康会来“,所以在生成字节时会按照我们.java文件的编码来编码我们的文件内容。
时间: 2024-10-11 11:58:46