草庐IT

utf8_general_ci

全部标签

c++ - 为什么我无法读取长度超过 4094 个字符的 UTF-16 文件?

一些信息:我只在Linux上试过这个我已经尝试过GCC(7.2.0)和Clang(3.8.1)据我了解,它需要C++11或更高版本我运行它时会发生什么我得到预期的字符串“abcd”重复,直到它达到4094个字符的位置。之后它输出的就是这个符号“?”直到文件结束。我对此有何看法?我认为这不是预期的行为,它一定是某个地方的错误。可用于测试的代码:#include#include#include#includevoidcreateTestFile(){std::ofstreamfile("utf16le.txt",std::ofstream::binary);if(file.is_open(

c++ - 当前使用的是哪个 Boost UTF 后端?

按照boost手册(http://www.boost.org/doc/libs/1_56_0/libs/locale/doc/html/using_localization_backends.html),我可以使用以下方法设置UTF后端:boost::locale::localization_backend_managermy=boost::locale::localization_backend_manager::global();my.select("std");现在有什么方法可以检查是否确实使用了std后端?我似乎只能获取所有可用的后端,但不能获取当前事件的后端boost::lo

c++ - en_US.UTF-8 语言环境的 Windows 等效项是什么?

如果我想在Windows上进行以下工作,正确的语言环境是什么以及如何检测它是否实际存在:Doesthiscodeworkuniversaly,orisitjustmysystem? 最佳答案 虽然对命名语言环境没有很好的支持,但VisualStudio2010确实包含C++11所需的UTF-8转换方面:std::codecvt_utf8用于UCS2和std::codecvt_utf8_utf16用于UTF-16:#include#include#include#include#includevoidprepare_file(){//

c++ - 带有 LANG=en_US.UTF-8 的 MacOS 10.6 上的 std::locale 损坏

我有一个要移植到MacOSX(特别是10.6)的C++应用程序。该应用程序大量使用了C++标准库和boost。我最近发现应用中有一些我难以理解的问题。基本上,boost文件系统库在程序运行时会抛出运行时异常。通过一些调试和谷歌搜索,我减少了对以下最小程序的违规调用:#includeintmain(intargc,char*argv[]){std::locale::global(std::locale(""));return0;}当我通过g++运行此程序并在设置了LANG=en_US.UTF-8的环境中执行生成的程序时,该程序失败(在我的计算机上,它是默认bashsession的一部分,

c++ - 已删除 "general"案例的专用模板函数无法使用 g++ <=4.8.0 和 clang++ 编译

用老版本的g++(4.8.0,MinGW)编译项目,发现这段代码编译失败:templatevoidfoo()=delete;templatevoidfoo(){}intmain(){foo();return0;}如果发现基本情况已被删除,g++似乎甚至不会尝试寻找显式的特化。mitalia@mitalia:~/scratch$/opt/mingw32-dw2/bin/i686-w64-mingw32-g++-std=c++11buggy_deleted_template.cppbuggy_deleted_template.cpp:Infunction'intmain()':buggy_

c++ - 如何将 UTF-8 std::string 转换为 UTF-16 std::wstring?

如果我有UTF-8std::string如何将其转换为UTF-16std::wstring?其实,我想比较两个波斯语单词。 最佳答案 这就是您使用C++11的方式:std::stringstr="yourstringinutf8";std::wstring_convert>converter;std::wstringwstr=converter.from_bytes(str);这些是您需要的标题:#include#include#include#include此处提供了更完整的示例:http://en.cppreference.co

c++ - TMP : how to generalize a Cartesian Product of Vectors?

有一个很好的C++解决方案(实际上是2个解决方案:递归和非递归),到CartesianProductofavectorofintegervectors.为了说明/简单起见,让我们只关注非递归版本。我的问题是,如何用模板概括这段代码,以获取如下所示的齐次vectorstd::tuple:{{2,5,9},{"foo","bar"}}并生成一个齐次vector的tuple{{2,"foo"},{2,"bar"},{5,"foo"},{5,"bar"},{9,"foo"},{9,“酒吧”}}如果它让生活更轻松,让我们假设输入中的内部vector都是齐次的。因此不允许这样的输入:{{5,"ba

javascript - 在从 Node 到 Java 的调用中强制执行 utf8 编码

我正在从Node中间层调用Java后端并将字符串作为查询参数传递。在使用非英文字母字符之前,一切都很好(例如:ř,ý)。当Java接收到这些字符时,它会抛出:parseexception:org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception:NotvalidUTF8!此调用完美运行:GEThttp://localhost:8000/server/name?name=smith此调用失败并出现上述错误:GEThttp://localhost:8000/server/name?name=sořovský我的问题涉及到哪里解决这个问题。

Go | string与UTF8编码

字符表示使用字符编号对照表,即收录很多字符,然后给他们一一编号。字符集促进了字符与二进制的合作ASCII字符集(1967年)只收录了128个字符,扩展字符集也就只有256个英文字符、阿拉伯数字、西文符、控制字符GB2312(1980年)添加了简体中文、拉丁字母、日文假名BIG5(1984年)添加了繁体字,但是依旧有很多字符没有被收录GB13000.1(1993年)添加了中日韩GBK(1995年)不支持韩文GB18030(2000)更多兼容与其不断退出更多字符的字符集,莫不如本着全球化统一标准的目的,制作一个通用字符集。这个字符集就是UnicodeUnicode(1990-1994)实现了跨区语

json - Windows上带有utf8编码文件的node.js readfile错误

我正在尝试在Windows8.1上使用node.js(0.10.29)从磁盘加载UTF8json文件。以下是运行的代码:varhttp=require('http');varutils=require('util');varpath=require('path');varfs=require('fs');varmyconfig;fs.readFile('./myconfig.json','utf8',function(err,data){if(err){console.log("ERROR:Configurationload-"+err);throwerr;}else{try{myco