gpt4 book ai didi

c# - C++和C#的字符编码不同

转载 作者:搜寻专家 更新时间:2023-10-31 00:01:09 25 4
gpt4 key购买 nike

我在 C++ 和 C# 中都有一个字符串处理函数。在 C++ 中,字符 ^ 的代码返回为 -120,而在 C# 中它是 710。在使用 visual studio 2010 在 C++ 中构建时,我在项目设置中将字符集设置为“未设置”。在 C# 中,我在其中一次转换期间使用 System.Text.Encoding.Default。这有什么区别吗?如何在 C++ 和 C# 中获得相同的行为?

最佳答案

字符是U+02C6。您在 C++ 中使用的编码可能是 CP 1252,它将此字符编码为字节 0x88(当以十进制显示带符号的字符时为 -120)。 C# 使用 UTF-16 编码,将此字符编码为 0x02C6(十进制为 710)。

您可以在 Windows 上的 C++ 中使用 UTF-16,方法是使用 wchar_t 而不是 char。

您不能使 C# 字符串使用 CP1252,但您可以使用编码从字符串中获取不同编码的字节数组。

byte[] in_cp1252 = Encoding.GetEncoding(1252).GetBytes("Your string here");

关于c# - C++和C#的字符编码不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11008695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com