codecvt

    9热度

    2回答

    我一直在探索C++ 11的新Unicode功能,虽然other C++11 encoding questions已经非常有帮助,但我对cppreference以下代码段有疑问。代码写入并立即读取以UTF-8编码保存的文本文件。 // Write std::ofstream("text.txt") << u8"z\u6c34\U0001d10b"; // Read std::wifstrea

    0热度

    1回答

    我有C++代码转换string包含(ALCHEMICAL SYMBOL FOR AQUA REGIA)至u16string: #include <string> #include <codecvt> #include <locale> using namespace std; int main() { setlocale(LC_ALL, "ru_RU.UTF-8");

    0热度

    1回答

    我想实现codecvt方面使用ICU从任何字符编码(ICU支持)转换为UTF-8内部。我知道codecvt_byname存在,它可以用来做我想要的一部分,如this example所示。这个例子的问题是它(1)使用宽字符流(我想使用“常规”,面向字节的流)和(2)需要2个流来执行转换。相反,我要像一个单一的数据流: locale loc(locale(), new icu_codecvt("ISO

    4热度

    2回答

    以下是使用std::codecvt_utf8<>方面从wchar_t转换为UTF-8的代码片段。使用Visual Studio 2012,我的期望不符合(请参阅代码末尾的条件)。我的期望错了吗?为什么?或者这是一个Visual Studio 2012库问题? #include <locale> #include <codecvt> #include <cstdlib> int main()

    0热度

    1回答

    是否有标准方法来检查构建新的std::codecvt_byname是否成功? 我是用下面的程序进行试验: // cl /nologo /Fetest_codecvt_byname.exe /EHsc test_codecvt_byname.cpp && test_codecvt_byname // g++ -o test_codecvt_byname test_codecvt_byname.cp

    1热度

    1回答

    鉴于 #include <locale> struct Q; struct R{ void operator()(Q*) { } }; class S : public std::codecvt<char, char, Q*> { } ; int main() { char *p; char *q; const char *r; char *s;

    0热度

    2回答

    获取std :: fstream文件的文件大小有很多问题,但它们都以字节为单位返回文件大小,并且如果文件在另一个流中打开,则容易出错。 我想知道代码点的文件大小,而不是字节。 现在std::fstream::seekg(0,std::ios::end)后面跟着std::fstream::tellg()只返回字节长度。这并不能告诉我文件中有多少个UTF-16/32字符。将结果除以sizeof(wch

    1热度

    1回答

    是否可以使用std :: fstream来使包含UTF-8编码的std :: string可以传输到UTF-16文件? 我尝试使用UTF8到UTF16面以下,但结果文件仍然是UTF-8: std::fstream utf16_stream("test.txt", std::ios_base::trunc | std::ios_base::out); utf16_stream.imbue(std:

    2热度

    1回答

    我有一个简单的代码,可以很好地处理输入选项只包含ASCII字符,但会抛出一个错误消息为“error:character conversion failed” 。有解决方案吗? 背景信息: 1. Compiler and OS: VC++2012 running on Windows 8.1 64 bit 2. "_UNICODE" option is ON It works with

    1热度

    1回答

    我最近发现<codecvt>标题,所以我想在UTF-8和UTF-16之间转换。 我使用C++ 11中的wstring_convert和codecvt_utf8_utf16构面。 我遇到的问题是,当我尝试将UTF-16字符串转换为UTF-8时,再次在UTF-16中,字节顺序发生了变化。 对于这个代码: #include <codecvt> #include <string> #include <