是否有可能char *
在C++(VC2010)中使用utf8编码?
例如,如果我的源文件保存在utf8中,我写的是这样的:
const char* c = "aäáéö?";
Run Code Online (Sandbox Code Playgroud)
这有可能使它成为utf-8编码?如果是的话,怎么可能使用
char* c2 = new char[strlen("aäáéö?")];
Run Code Online (Sandbox Code Playgroud)
如果字符可以是可变长度的动态分配?
Jam*_*nze 14
窄字符串文字的编码是实现定义的,所以你真的必须阅读文档(如果你能找到它).一个快速的实验表明VC++(VC8,无论如何)和g ++(4.4.2,无论如何)实际上只是复制源文件中的字节; 字符串文字将采用编辑器保存的任何编码.(这显然违反了标准,但似乎是常见做法.)
C++ 11具有UTF-8字符串文字,允许您编写u8"text"
,并确保"text"
以UTF-8编码.但我真的不希望它可靠地运行:问题是,为了做到这一点,编译器必须知道源文件的编码.很可能,编译器编写者将继续忽略该问题,只是从源文件中复制字节,并实现一致性,只需记录源文件必须是UTF-8才能使这些功能正常工作.
归档时间: |
|
查看次数: |
31623 次 |
最近记录: |