草庐IT

UTF8Encoding

全部标签

c++ - C标准: Character set and string encoding specification

我发现C标准(C99和C11)在字符/字符串代码位置和编码规则方面含糊不清:首先标准定义了源字符集和执行字符集。本质上它提供了一组字形,但不关联任何数值与他们一起-那么默认字符集是什么?我不是在这里询问编码,而只是询问字形/轨道到数字/代码点的映射。它确实将universalcharacternames定义为ISO/IEC10646,但它是否说这是默认字符集?作为上述内容的扩展-我找不到任何说明什么字符的内容数字转义序列\0和\x表示。从C标准(C99和C11,我没有检查ANSIC)我得到以下关于字符和字符串文字:+---------+-----+------------+------

C++ 字符串 : UTF-8 or 16-bit encoding?

我仍在尝试决定我的(家庭)项目是否应该使用UTF-8字符串(根据std::string实现,必要时带有额外的UTF-8特定函数)或一些16位字符串(实现为std::wstring)。该项目是一种编程语言和环境(就像VB,它是两者的结合)。有一些愿望/限制:如果它可以在有限的硬件(例如内存有限的计算机)上运行,那就太棒了。我希望代码在Windows、Mac和(如果资源允许)Linux上运行。我将使用wxWidgets作为我的GUI层,但我希望与该工具包交互的代码限制在代码库的一个角落(我将拥有非GUI可执行文件)。在处理用户可见文本和应用程序数据时,我希望避免使用两种不同类型的字符串。目

C++ 字符串 : UTF-8 or 16-bit encoding?

我仍在尝试决定我的(家庭)项目是否应该使用UTF-8字符串(根据std::string实现,必要时带有额外的UTF-8特定函数)或一些16位字符串(实现为std::wstring)。该项目是一种编程语言和环境(就像VB,它是两者的结合)。有一些愿望/限制:如果它可以在有限的硬件(例如内存有限的计算机)上运行,那就太棒了。我希望代码在Windows、Mac和(如果资源允许)Linux上运行。我将使用wxWidgets作为我的GUI层,但我希望与该工具包交互的代码限制在代码库的一个角落(我将拥有非GUI可执行文件)。在处理用户可见文本和应用程序数据时,我希望避免使用两种不同类型的字符串。目

android - 带有 utf8 字符的 jstring(JNI) 到 std::string(c++)

如何将jstring(JNI)转换为std::string(c++)与utf8字符?这是我的代码。它适用于非utf8字符,但适用于utf8字符。std::stringjstring2string(JNIEnv*env,jstringjStr){constchar*cstr=env->GetStringUTFChars(jStr,NULL);std::stringstr=std::string(cstr);env->ReleaseStringUTFChars(jStr,str);returnstr;} 最佳答案 经过很长时间才找到解决

android - 带有 utf8 字符的 jstring(JNI) 到 std::string(c++)

如何将jstring(JNI)转换为std::string(c++)与utf8字符?这是我的代码。它适用于非utf8字符,但适用于utf8字符。std::stringjstring2string(JNIEnv*env,jstringjStr){constchar*cstr=env->GetStringUTFChars(jStr,NULL);std::stringstr=std::string(cstr);env->ReleaseStringUTFChars(jStr,str);returnstr;} 最佳答案 经过很长时间才找到解决

c++ - 如何在 C++ 中使用 utf8 字符数组?

是否可以让char*s在C++(VC2010)中使用utf8编码?例如,如果我的源文件保存在utf8中,我会这样写:constchar*c="aäáéöő";这是否可以使其成为utf-8编码?如果是的话,怎么可能使用char*c2=newchar[strlen("aäáéöő")];如果字符可以是可变长度的,则用于动态分配? 最佳答案 窄字符串文字的编码是实现定义的,所以你真的必须阅读文档(如果你能找到它)。一个快速的实验表明VC++(无论如何都是VC8)和g++(无论如何是4.4.2)实际上只是从源文件中复制字节;字符串文字将采用

c++ - 如何在 C++ 中使用 utf8 字符数组?

是否可以让char*s在C++(VC2010)中使用utf8编码?例如,如果我的源文件保存在utf8中,我会这样写:constchar*c="aäáéöő";这是否可以使其成为utf-8编码?如果是的话,怎么可能使用char*c2=newchar[strlen("aäáéöő")];如果字符可以是可变长度的,则用于动态分配? 最佳答案 窄字符串文字的编码是实现定义的,所以你真的必须阅读文档(如果你能找到它)。一个快速的实验表明VC++(无论如何都是VC8)和g++(无论如何是4.4.2)实际上只是从源文件中复制字节;字符串文字将采用

c++ - 在 Windows 控制台中正确打印 utf8 字符

这是我尝试的方式:#include#includeusingnamespacestd;intmain(){SetConsoleOutputCP(CP_UTF8);//germancharswon'tappearcharconst*text="aäbcdefghijklmnoöpqrsßtuüvwxyz";intlen=MultiByteToWideChar(CP_UTF8,0,text,-1,0,0);wchar_t*unicode_text=newwchar_t[len];MultiByteToWideChar(CP_UTF8,0,text,-1,unicode_text,len);

c++ - 在 Windows 控制台中正确打印 utf8 字符

这是我尝试的方式:#include#includeusingnamespacestd;intmain(){SetConsoleOutputCP(CP_UTF8);//germancharswon'tappearcharconst*text="aäbcdefghijklmnoöpqrsßtuüvwxyz";intlen=MultiByteToWideChar(CP_UTF8,0,text,-1,0,0);wchar_t*unicode_text=newwchar_t[len];MultiByteToWideChar(CP_UTF8,0,text,-1,unicode_text,len);

c++ - 对 C++ 的 std::wstring、UTF-16、UTF-8 以及在 Windows GUI 中显示字符串感到困惑

我正在开发一个仅适用于Windows的英语C++程序,我们被告知“始终使用std::wstring”,但似乎团队中没有人真正对此有太多了解。我已经阅读了标题为"std::wstringVSstd::string的问题.这很有帮助,但我仍然不太明白如何将所有这些信息应用于我的问题。我正在处理的程序在WindowsGUI中显示数据。该数据以XML形式保存。我们经常使用XSLT将XML转换为HTML或XSL:FO以用于报告目的。根据我所读到的内容,我的感觉是HTML应该被编码为UTF-8。我对GUI开发知之甚少,但我读到的一点点表明GUI的东西都是基于UTF-16编码的字符串。我试图了解这给