- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在处理的项目需要与我们不制作的客户端系统交互,因此我们无法控制数据的发送方式。问题是在 C# 中工作,它似乎对 UCS-2 没有任何支持,对 big-endian 的支持也很少。 (据我所知)
我想知道的是,是否有我在 .net 中查看过的内容,或者其他人制作并发布的我们可以使用的内容。如果没有,我会尝试用自定义方法对其进行编码/解码,如果可能的话。
但无论如何感谢您的时间。
编辑:BigEndianUnicode 确实可以正确解码字符串,问题在于接收其他数据作为大端,到目前为止,按照其他地方的建议使用 IPAddress.HostToNetworkOrder() 允许我解码字符串的一半(Merli?是什么出现了,应该是Merlin33069)
我正在梳理短代码,看看是否还有我错过的另一个长度变量
解决方案:在确定 bigendian 变量是主要问题后,我回顾并查看了详细信息,似乎字符串的长度是以字符数而不是字节数发送的(在 utf 中,char 似乎是两个字节)我需要做的就是把它翻倍,它成功了。谢谢大家的帮助。
最佳答案
string x = "abc";
byte[] data = Encoding.BigEndianUnicode.GetBytes(x);
另一个方向:
string decodedX = Encoding.BigEndianUnicode.GetString(data);
不是完全正确 UCS-2但对于大多数情况来说已经足够了。
更新: Unicode FAQ
Q: What is the difference between UCS-2 and UTF-16?
A: UCS-2 is obsolete terminology which refers to a Unicode implementation up to Unicode 1.1, before surrogate code points and UTF-16 were added to Version 2.0 of the standard. This term should now be avoided.
UCS-2 does not define a distinct data format, because UTF-16 and UCS-2 are identical for purposes of data exchange. Both are 16-bit, and have exactly the same code unit representation.
Sometimes in the past an implementation has been labeled "UCS-2" to indicate that it does not support supplementary characters and doesn't interpret pairs of surrogate code points as characters. Such an implementation would not handle processing of character properties, code point boundaries, collation, etc. for supplementary characters.
关于C# 大端 UCS-2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6971593/
我有一条记录: Tconnecting = record var a: int64; b: integer; c: integer; end; 我需要使用UDP协议
我知道,我知道,这听起来很简单,但我很困惑。如果您有以下输入 Data : 1100 0101 1010 1101 并且您想将大端转换为小端,或反之,您认为以下哪项是正确的输出? 1011 0101
我目前正在处理的项目需要与我们不制作的客户端系统交互,因此我们无法控制数据的发送方式。问题是在 C# 中工作,它似乎对 UCS-2 没有任何支持,对 big-endian 的支持也很少。 (据我所知)
我正在编写一个函数,将 ascii 字符串转换为其大端字节序的二进制表示形式。 这是我的代码: int count = 0; for (int i = 0; i = 0; k--) {
我从 MSDN 中找到了以下函数它将 unsigned long 从网络字节转换为主机字节顺序的 unsigned long,即在 little-endian 中定义为: u_long WSAAPI
我正在使用 AES Rijndael 的公共(public)领域引用实现,通常以名称“rijndael-fst-3.0.zip”分发。我打算用它来加密网络数据,我想知道加密结果在大/小端架构上是否会有
我有一个十六进制字符串,其内容为18000000,该字符串采用主机字节顺序(小端),我需要将其转换为网络字节顺序(大端)。生成的十六进制字符串将为 00000018。 总而言之,我需要转换180000
我有一个十六进制字符串,其内容为18000000,该字符串采用主机字节顺序(小端),我需要将其转换为网络字节顺序(大端)。生成的十六进制字符串将为 00000018。 总而言之,我需要转换180000
我正在生成用于模拟网络的单元测试的二进制文件。通过网络发送的一些数据采用 Little Endian 或 Big Endian 模式,我想使用 stub 模拟这些数据并创建二进制文件。 因此,换句话说
这个问题在这里已经有了答案: Endianness Work-around Needed (2 个答案) 关闭 9 年前。 我有一个包含 n 个单精度值的二进制文件。我知道写入数据时使用的格式是大端
我有一个 4 字节编码的日期(大端),我试图从二进制文件中读取它。 我愿意: char date[4]; long seconds; s = read(fd, date, sizeof(char) *
在 Python2.7 中,通过 USB 批量传输,我从相机中获取图像帧: frame = dev.read(0x81, 0x2B6B0, 1000) 我知道一帧是 342x260 = 88920 像
我有一个 byte[4],它包含一个 32 位无符号整数(按大端顺序),我需要将它转换为 long(因为 int 不能保存无符号数)。 此外,我该如何反之(即从包含 32 位无符号整数的 long 到
public static void main(String[] args) { File inFile = null; if (0 0) { getMarker(re
我正在使用 Node.JS。 Node's buffers支持小端 UCS-2,但不支持我需要的大端。我该怎么做? 最佳答案 根据维基百科,UCS-2 should always be big-end
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 7 年前。 Improve this ques
我需要通过串行线路 (RS-232) 从 Arduino 接收十六进制编码的单精度大端浮点值。如何将它们转换为 Python 的 double 大端字节序的 float ? Arduino 发送类似“
类似于如何使用包: N An unsigned long (32-bit) in "network" (big-endian) order. 是否有任何方法可以在 Perl 中以“网络”(大端)顺序
我有一个这样的 C 结构...... struct icmp_prefixopt { u_int8_t icmpopt_type; u_int8_t icm
我正在使用 PHP、fopen、fseek、pack 等创建然后将数据写入文件(一个新的“ESRI Shape 文件”)。文件规范在这里 http://www.esri.com/library/whi
我是一名优秀的程序员,十分优秀!