首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >到unicode还是不对unicode

到unicode还是不对unicode
EN

Stack Overflow用户
提问于 2011-09-27 17:24:36
回答 2查看 823关注 0票数 4

我从注册表中得到了一个值。此值中可能包含双字节字符。稍后,我将不得不通过将其通过网络传输到C#客户端以显示。C#都是unicode。如果您称它为非unicode,则该函数返回MBCS。

我该用什么?

代码语言:javascript
复制
string result = string(cbData);
RegQueryValueExA(h_sub_key, "DisplayName", NULL, NULL, (LPBYTE) &result[0], &cbData)

代码语言:javascript
复制
string result = string(cbData);
RegQueryValueExW(h_sub_key, L"DisplayName", NULL, NULL, (LPBYTE) &result[0], &cbData)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-27 17:46:10

只要有可能,使用Unicode将使您的生活更轻松。当您使用ReqQueryValueExA时,注册表将本地包含Unicode并动态转换为MBCS,您为什么要进行不需要的转换?

从UTF-16转换到UTF-8可能对网络上的信息有意义,但是如果您控制连接的两端,就没有必要了。

票数 4
EN

Stack Overflow用户

发布于 2011-09-27 17:46:32

不,不是这样的。从第一个代码段返回的字符串是根据当前系统代码页编码的。可能是双字节编码。可能是任何东西。当然,大问题是,互联网连接的另一端的C#代码无法猜测代码页可能是什么。

所以不要使用第一个片段。第二种方法是在utf16 ( Windows中使用的本机编码)中获取字符串,结果需要是std::wstring。还有C#使用的编码,这样您就可以发送二进制字符串了。虽然这通常不是一个好主意,但xml很受欢迎。由你来设置导线格式。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7573200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档