![]() |
1
4
我会在内部使库完全Unicode。然后,一组C++适配器类将存在于ASCII中,即Tube到Unicode实现。 |
![]() |
2
1
如果将第一个字符串转换为UTF-8,则可以将Unicode字符串存储STD:: 当与utf-16调用(如windows api)交互时,只需要wstring。如果是这种情况,您可以在需要的地方将字符串本地转换为wstring。这可能有点累赘,但也没那么糟。 |
![]() |
3
0
这个问题有点不准确,但是… 首先你必须精确编码。unicode只是字符的一种表示(每个字符都与一个码位相关联),在应用程序中处理unicode时,必须选择如何表示码位。如果你可以使用UTF-8,你就不用担心宽字符,你可以把数据存储在一个普通的STD::String:)中。 那么你必须精确地说明你的问题:
我正在研究国际化的应用程序(一个网站,带有一个C++后端…),我们只需在内部使用STD::String。ascii或utf-8格式的输出取决于翻译文件,但数据表示形式没有任何变化(除了计算字符,请参见 my post 关于这个话题)。 真的,我绝对不喜欢宏,因为utf-8本来是要与ascii兼容的,如果你能选择自己的编码,你就得救了! |
![]() |
4
0
你问的是代码的“可理解性”,而不是使用ascii、utf-8、16或32位字符。 如果是这样的话,我更喜欢使代码块尽可能大:这样就可以使用“gate”(unicode符号常量)来选择单独的文件,或者至少选择大块代码。在一个语句中,每隔一行或几行,或天不允许,就改变其位置的代码是很难理解的。 我建议不要用这个门来选择包含单独的文件
因此可能需要两个甚至三个文件(unicode文件、646us(ascii)文件,以及可能包含上述代码的nexus文件)。这是丢失某些内容并导致生成失败的可能性的三倍。 相反,使用文件中的gate来选择大块代码:
好吧,假设你在做相反的事情:想知道char与char(utf-8)与w与a。你想成为多普遍的人?您所提到的cstrings仅适用于windows世界。如果你想与mac和unix(好的,linux)兼容,那你就要经历一段艰难的旅程。 顺便说一下,ascii是…不是…一个公认的标准。有ascii,然后有…ASCII如果您指的是unix旧时代的7位“标准”,那么我找到的最接近的是iso-646us。Unicode等价物是ISO-10646。 有些人很幸运地将字符编码为url:ascii字母和数字以及百分比符号。虽然您必须一直进行编码和解码,但存储确实是可预测的。有点奇怪,是的,但绝对是创新的。 有一些语言上的陷阱。例如,不要依赖case来实现双向(这里我不知道正确的单词)。在Deutsch中,小写在转换为大写时变为ss。然而,当小写时,ss变形为ss,而不是_。土耳其语也有相似之处。在设计应用程序时,不要认为案例翻译可以帮助您。 另外,请记住,不同语言的语法顺序是不同的。“你好,吉姆!星期一过得怎么样?”最后会说“你好!你的,星期一,一切顺利,吉姆?” STD::CIN:L&&L.and STD::COUT和GT;GT;它会诱使您以这样一种方式嵌入消息生成器,使得本地化它们变得非常困难。 你问的问题是对的。你前面有一场冒险!最好! |
![]() |
Mark · 在中使用欧姆龙库。NET Core 2.0 7 年前 |
![]() |
heather · 将引用的库压缩到Eclipse项目中 7 年前 |
![]() |
user3902003 · 在Python中处理SVG 7 年前 |
![]() |
sam_c · 当gradle中排除了库依赖时,后台会发生什么? 7 年前 |
![]() |
4C554B41 504C · 窗户。Android上的h库 8 年前 |
![]() |
Learning is a mess · 通过编译库加快编译速度 9 年前 |