是什么决定了C++中的字符编码
What determines character encoding in C++
我是为Windows开发的,软件是客户端-服务器解决方案,客户端用C#编写,服务器用C++编写。
今天,我想开发一个简单的函数:从客户端发送字符串,在服务器端接收字符串,并将其写入xml文件。
我的问题是,我在服务器端看到的字符是ANSI编码的。据我所知,C#字符串是用unicode编码的,为什么我的服务器端C++应用程序将字符串编码为ANSI?我认为我的通信模块没有修改字符串。
嗯,C#字符串是UTF16编码的
您可能希望使用std::u16string
而不是常规的std::string
另一种选择是使用System.Text.Encoding
类。
由于IO操作比CPU操作慢得多,并且IO操作时间也与所涉及的内存大小成正比,并且UTF8通常比UTF16更精简,因此通常的做法是通过网络与UTF8进行通信。
因此,在实际发送C#字符串之前,我将把它们转换为UTF8,并在服务器端使用std::string
。
不过,请记住,std::string
并没有UTF8意识,所以编写类似str[0]
的东西可能不会提供完整的UTF8序列,而只是它的第一个字符。
相关文章:
- 是否有任何区域设置会影响宽字符编码?
- 字符编码和带有C++的文件名
- C 14:UTF-8/UTF-16与本机字符编码之间的转换
- 如何获取 json 文件的字符编码类型
- 字符编码的自动分配
- 如何正确确定文本文件的字符编码
- 是什么决定了C++中的字符编码
- HttpFile::SendRequest和字符编码
- 从 Linux 到 Windows 交叉编译时,我应该如何处理字符编码
- 如何检查在运行程序的控制台上设置了哪些字符编码
- 在c++中转换字符编码
- 标准::字符串字符编码
- Boost:如何检查文本文件字符编码/字符集
- 流级别的字符编码
- 文件字符编码
- 字符编码独立字符交换
- cURL post字段是用特殊字符编码的
- c++是否支持除UTF-8、UTF-16和UTF-32以外的字符编码之间的转换?
- 字符编码-当读取超过127个ASCII值时,C++cin失败
- gettext字符编码