为什么c#和java unicode不同
Str=test Java代码 c#代码为什么c#和java unicode不同,java,unicode,Java,Unicode,Str=test Java代码 c#代码 这里似乎有两个问题(不包括示例无法实际生成输出的方式) 您的java示例使用UTF16,big-endian对数据进行编码,而C#示例使用UTF16,little-endian,这解释了零字节的不同位置 您的java示例在数据前面有一个BOM(0xFFFE),即字节顺序标记,用于显示使用了哪个UTF编码。UTF 8、16(BE和LE)和32(BE和LE)都为该字符生成不同的字节序列。关于这是否是一个好主意,有很多争论 BigEndian和LittleEn
这里似乎有两个问题(不包括示例无法实际生成输出的方式)
BigEndian和LittleEndian之间的区别是什么?代码不能产生那个输出。还有,究竟是什么?
The results are not the same I do not know why.
int[] inData = getInt(Str.getBytes("**unicode**"));
for (int i = 0; i < inData.length; i++) {
System.out.println("====EncryStrHex==inData[i]==" + inData[i]);
}
*========*******Encryints====-2
========*******Encryints====-1
========*******Encryints====0
========*******Encryints====116
========*******Encryints====0
========*******Encryints====101
========*******Encryints====0
========*******Encryints====115
========*******Encryints====0
========*******Encryints====116*
byte[] inData = Encoding.**Unicode**.GetBytes(Str);
for (int i = 0; i < inData.Length; i++) {
Console.WriteLine("====EncryStrHex==inData[i]==" + inData[i]);
}
*========*******Encryints====116
========*******Encryints====0
========*******Encryints====101
========*******Encryints====0
========*******Encryints====115
========*******Encryints====0
========*******Encryints====116
========*******Encryints====0*