繁体   English   中英

从 Windows .NET 到 Android Java 的 Unicode 字符串

[英]Unicode string from Windows .NET to Android Java

请给我正确的转换函数集以在 Java 中接收正确的结果。

Windows.NET 部分。

一些 UNICODE 字符串数据使用

Encoding.Unicode.ToBytes(SomeString);

安卓Java

byte[]缓冲区按原样传输到 Android Java。 使用new String(byte[], "utf-16")不会给出正确的字符串。 有人说这是因为一个字符字节的大或小结束顺序。 我不确定 Unicode.Net 和 utf-16 是否相同。 是一样的吗?

是否有一个标准库负责这种转换,或者每个程序员都应该开发自己的函数来将大端转换为小端等等?

研究表明,在Java下添加了额外的-1 -2 ..这两个字节是什么意思? 在此处输入图片说明

额外的前两个字节 [-1, -2] 是Byte Order Mark (BOM) 您可以在Wiki Page上阅读有关它的更多信息

您应该在 byte[] 的开头添加BOM 我在 C# 中使用以下代码片段将 String 转换为 byte[],包括 BOM。

var result = Encoding.Unicode.GetPreamble().Concat(Encoding.Unicode.GetBytes("Sample Unicode Text")).ToArray();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM