UE4 C++ 中文乱码
从数据库获取数据后,用的是char数组来获取中文字符串,之后返回UE4中是FString类型,这时候,中文就没法显示。例:
char str="你好";
FString fs = str;
FString fs1 = FString(str);
//以上转换都是乱码
return fs;
求大牛们帮忙?怎么修改这个中文乱码?
数据库读出来的字符串一般是UTF8编码吧,用 UTF8_TO_TCHAR() 转换一下就行
lein 发表于 2017-10-23 18:30
数据库读出来的字符串一般是UTF8编码吧,用 UTF8_TO_TCHAR() 转换一下就行
数据库读取的数据并不是乱码,只是char数组转换成fstring类型的数据的时候,是乱码。
用UTF8_TO_TCHAR() 或者ANSI_TO_TCHAR()也还是乱码 把你的文件用UTF-8保存就好。
步骤:
文件---高级保存选项---Unicode(UTF-8 无签名) - 代码页65001 yh362230334 发表于 2017-10-26 08:32
把你的文件用UTF-8保存就好。
步骤:
感谢,问题已经解决,是需要使用WideCharToMultiByte转码 楼主,请问WideCharToMultiByte转码这个是怎么用的啊?
丑了了 发表于 2017-12-20 17:26
楼主,请问WideCharToMultiByte转码这个是怎么用的啊?
char *cpResult = cs1->cname;
int dwNum = MultiByteToWideChar(CP_ACP, 0, cpResult, strlen(cpResult) + 1, NULL, 0);
wchar_t *widebuff = new wchar_t;
MultiByteToWideChar(CP_ACP, 0, cpResult, strlen(cpResult) + 1, widebuff, dwNum);
FString str= FString(widebuff);
页:
[1]