【发布时间】:2016-01-21 11:29:21
【问题描述】:
快速介绍:问题是关于 UTF-8 与 UTF-16。
*我已尽我所能保持简短和具体,请多多包涵。
我知道特定问题UTF-8/16 有无数种变体,没有提到全局编码主题,
这是我提问的开始(ANSI vs UNICODE),我想这不仅仅是*我的*任务,
因为它可以为许多其他(以性能为导向的)c++ 初学者提供服务。
更具体 - 切中要害:
给出以下环境参数:
-
WINDOWS平台 -
C++和C# - 使用一些英语 /俄语/希伯来语
*让我们说这是一个常数。
我可以使用 UTF-8(UTF-16 的一半大小)并“摆脱它”吗?
...节省空间和时间
TLDR
我最近开始使用C++,在过去的几天里,我试图决定如何处理字符串,这是要处理的最昂贵的数据类型之一,我几乎关注了所有关于编码问题的著名和不太著名的文章,虽然我越想继续搜索,我就越困惑,关于兼容性,同时保持高性能应用程序不跨越 *framework 的边界
尽管我计划通过Native c++ 完成大部分I/O,但我使用了术语框架
我可以使用 UTF-8 吗?我想要UTF-8吗,我知道一件事!
windows 'blood' 类型是 UTF-16,虽然我认为 Low Level I/O 和 HTTP 使用/默认/首选/受益于 UTF-8
但是我在 Windows 上并且仍在使用 .NET
我可以使用什么来最大化我的应用程序性能,查询操作保存到数据库...
【问题讨论】:
-
UTF-8 可能会节省英文文本的空间,但对于俄语或希伯来语肯定不行。您的程序中最好的部分很大程度上取决于您想要做什么。如果有一个万能的,每个人都会使用它,而你不必问。此外,如果您想与铁杆 C++ 编码员交朋友,则不应使用“非托管 C++”一词(糟糕!)。该语言只是 C++,或者可能是 native C++。
-
你的数据库是说 UFT-8 还是 UTF-16 还是两者都说?
-
@Surt 我使用 'SqlServer 2012'
default language=English,主要设置为 'Hebrew_100_CI_AI' ,从未检查过 Unicode 问题 -
@BoPersson 抱歉,我担心 vc++ 冲突,请处理它(:
标签: c# c++ performance utf-8 character-encoding