ASCII 13 是 回车,10 是 换行。

解决方案 »

  1.   

    ISO/IEC 8859-1,又称Latin-1或“西欧语言”,是国际标准化组织内ISO/IEC 8859的第一个8位字符集。它以ASCII为基础,于空置的0xA0-0xFF的范围里,加入192个字母及符号,借以供使用重音字母的拉丁字母语言使用。
      

  2.   

    1.你在控制台下输入的中文字符串为GBK/GB2312编码的,每个字符要占两个byte。当String的构造函数使用GBK/GB2312编码时,会将buff中每两个byte作为一个char处理,所以能看到正确的输出结果;如果String的构造函数使用ISO-8859-1编码时,会将buff中的每一个byte扩充为一个char处理,故看不到正确结果。
    2.13和10是换行和回车啊
      

  3.   

    楼上兄弟,你理解好像有点不对吧?
    你说从控制台输入的字符要占两个byte?,我看未必,
    我做了个实验,假设我输入"1a",则buffer 中显示49,49,97,13,10,0,0.....
    假设我输入"你好啊",则buffer中显示-60,-29,-70,-61,-80,-95,13,10,0,0,0....可见,如果输入的字符是英文,则buffer 只用了一个byte存储,
    如果输入的字符是汉字,则buffer  用了2个byte存储。
    照说, 不管是英文字符还是汉字,Java都是用 Unicode编码的呀,都应该占两个byte,即与你想的一致,
    可是通过我刚才的那个实验,实际情况并不是这样的呀,这是什么原因呢?
    大家多多讨论呀,让我们一起彻底明白 Java的IO 系统呀!
     
      

  4.   

    Java中每个char都占用16bit的内存空间,也就是两个byte。从你做的实验怎么会得出“可见,如果输入的字符是英文,则buffer 只用了一个byte存储”这样的结论?看看你的实验:
    --------------------------------------
    我做了个实验,假设我输入"1a",则buffer 中显示49,49,97,13,10,0,0.....
    --------------------------------------表示“1a”的字节是49,49,97,13,这里难道不是每个字符占用两个字节吗?字母和汉字占用的空间是一样的。iso-8859-1字符集并不包含中文字符,当然显示不出中文了。构造一个String的时候默认是按照你的操作系统的缺省字符编码进行的,所以一般情况下没必要显式地为一个String指定字符编码。如果你要指定的话,也要指定一个包含了你要输入的字符的字符集编码。
      

  5.   

    我做了个实验,假设我输入"1a",则buffer 中显示49,97,13,10,0,0.....
    这才是实验的结果,
    每个英文字符和中文的占的字节数是不一样的,
    英文字符占一个,中文占两个,
    不信的话,你可以试试,