论坛首页 Java企业应用论坛

《碰到的一个编码问题》的回答:UTF-8的汉字字节!

浏览 20990 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-18  
  实际上跟知道不知道UTF-8是几个字节一点关系都没有,最后把加解密算法重新都改成了对字节的操作。
  不过还是谢谢切切。
0 请登录后投票
   发表时间:2007-08-19  
可以看看我这篇博客:Utf-8编码是如何工作的 http://bigpanda.iteye.com/blog/31890
0 请登录后投票
   发表时间:2007-08-19  
引用

1、创建一个UTF-8编码的文件:weare.txt
2、写入三个字:“我们是”
3、运行以下代码:


代码
public class UTF8 {  
 
    public static void main(String[] args) throws IOException {  
        String p = "weare.txt";  
        InputStream in = new FileInputStream(p);  
        int read = in.read(new byte[1204]);  
        System.out.println(read);  
          
    }  
}  


4、你会发现打印出来的是 9 !



怎么我的文件是12个字节,打印结果是 12 ?
0 请登录后投票
   发表时间:2007-08-19  
楼上的,你保存的文件可能带有BOM。
0 请登录后投票
   发表时间:2007-08-19  
utf-8表示英文用一个字节表示一个,和Ascii一样。表示汉字就不一定了。

UTF-8用1到6个字节编码UNICODE字符。如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节,而如果UNICODE 字符由4个字节表示,则编码成UTF-8可能需要6个字节。用4个或6个字节去编码一个UNICODE字符可能太多了,但很少会遇到那样的UNICODE 字符。
0 请登录后投票
   发表时间:2007-08-20  
编码确实是个碍手的问题
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics