使用道具 举报
Post by lit_river 偷学习了不少东西,呵呵 另外问一下,那“L”一般在什么情况下使用阿,只能在windows下用吗?
Post by lit_river 偷学习了不少东西,呵呵 我的理解是,源代码使用的编码在编写程序的时候就已经固定了,输入的中文字符串在源码中会根据编码的不同而不同,但绝对不会存储为unicode,因此在字符串前面加“L"几乎是没有意义的(是几乎)。我们在源码中输入的都是msb,不可能输入unicode。因此要想输出8只能按realtang的方法实现,即msb转换为unicode。 不知道我说的对不对,欢迎高手拍砖 另外问一下,那“L”一般在什么情况下使用阿,只能在windows下用吗? 如果这样的话,是否会有源码移植的问题?比如我用utf8写源码,别人用gbk编译,那是不是就要出乱码了?这要是不是要求我们在源码里面不要写汉字字符串了,而是使用gettext等实现字符串变量
Post by 800 wchar_t *p; setlocale(LC_ALL, ""); p = L"中华人民共和国a"; wprintf(L"%d\n", wcslen(p)); 复制代码 这段代码在linux下面,或在win32上用mingw,gcc -D_UNICODE编译,输出的都是15,怎么会这样啊? 另,win32上有个_mbslen函数,gcc里有没有类似功能的东西呢?
本版积分规则 发表回复 回帖后跳转到最后一页