
看看是不是没有调用这个函数
for example
char str[1024] = "abc123故障短路切换"
wchar_t array[1024]={0}
setlocale(LC_ALL,"zh_CN.GB2312")
/*from chinese to Unicode*/
if((ret=mbstowcs(array, str, strlen(str)))==-1)
{
printf("error\n")
}
goodluck
我怎么就编译过了,检查一下自己的程序吧。你的写法应该么有问题。$ cat ws.cc
#include <string>
#include <iostream>
int main()
{
std::wstring wstr = L"世界你好!"
std::wcout <<wstr <<std::endl
return 0
}
$ g++ ws.cc -o ws
$
不会编程。不过我记得:1、Linux 的内部字符串数据处理都是 utf8 。这个是标准。
2、外部字符串是 locale 编码,也就是设置的 locale 系统环境变量的编码。
3、输入 locale2utf8 ,输出 utf82local 。
这个是 Linux 的标准处理。
不过输出输入还是根据环境考虑。
没有一种算法可以明确检测一段文字的编码。windows 下面都是借助字符串前置的识别码决定的。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)