mr.*_*sky 5 java string unicode
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
public class Main {
public static void main(String[] args)
{
try
{
String s = "s";
System.out.println( Arrays.toString( s.getBytes("utf8") ) );
System.out.println( Arrays.toString( s.getBytes("utf16") ) );
System.out.println( Arrays.toString( s.getBytes("utf32") ) );
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
安慰:
[115]
[-2, -1, 0, 115]
[0, 0, 0, 115]
Run Code Online (Sandbox Code Playgroud)
它是什么?
[-2,-1] - ???
另外,我注意到,如果我这样做:
String s = new String(new char[]{'\u1251'});
System.out.println( Arrays.toString( s.getBytes("utf8") ) );
System.out.println( Arrays.toString( s.getBytes("utf16") ) );
System.out.println( Arrays.toString( s.getBytes("utf32") ) );
Run Code Online (Sandbox Code Playgroud)
安慰:
[-31, -119, -111]
[-2, -1, 18, 81]
[0, 0, 18, 81]
Run Code Online (Sandbox Code Playgroud)
-2,-1是字节顺序标记(BOM-U + FEFF),表示以下文本以UTF-16格式编码.
你可能得到这个,因为虽然只有一个UTF8和UTF32编码,但有两个UTF16编码UTF16LE和UTF16BE,其中16位值中的2个字节以Big-Endian或Little Endian格式存储.
由于返回的值是0xFE xFF,这表明编码是UTF16BE
| 归档时间: |
|
| 查看次数: |
2200 次 |
| 最近记录: |