我已经尝试搜索stackoverflow来找到答案,但我发现的问题和答案大约是10岁,由于变化和可能的进展,我似乎无法就该主题达成共识.
我知道在stl之外有几个库可以处理unicode-
stl(wstring,codecvt_utf8)有一些功能,但人们似乎对使用感到矛盾,因为他们处理UTF-16这个网站:(utf-8无处不在)说不应该使用和许多人网上似乎同意这个前提.
我唯一想要的是能够用unicode字符串做4件事 -
从我可以告诉icu处理这个和更多.我想知道的是,在Linux,Windows和MacOS上有一种标准的处理方式.
感谢您的时间.
Ser*_*sta 13
我会尝试在这里提出一些想法:
一旦你离开基本多语言平面(16位代码点),事情就会变得越来越复杂.的表情符号是特别可怕到过程:一个表情符号可以跟随一个变化选择器(U + FE0E变异SELECTOR-15(VS15)用于文本或U + FE0F变异SELECTOR-16(VS16)为表情符号样式),以改变其显示风格,或多或少i bs ^是1970年ascii当人们想要打印时使用的旧款式î.不仅如此,字符U + 1F3FB到U + 1F3FF用于为跨越六个块的102个人类表情符号提供肤色:标志,表情符号,杂项符号,杂项符号和象形文字,补充符号和象形文字,以及传输和地图符号.
这只是意味着最多3个连续的unicode代码点可以代表一个单一的字形...所以一个字符是一个的想法char32_t仍然是一个近似
我的结论是Unicode 是一个复杂的东西,并且真的需要像ICU这样的专用库.当您只处理BMP时,您可以尝试使用标准库的转换器等简单工具,但完全支持远不止于此.
顺便说一下:甚至像Python这样的其他语言假装有本地unicode支持(恕我直言,比当前的C++更好)在某些方面失败了:
所以对Unicode的支持已经超过10年了,我真的不希望未来10年内情况好转......
| 归档时间: |
|
| 查看次数: |
2909 次 |
| 最近记录: |