我需要修改我的程序以接受 Unicode,它可能来自任何 UTF-8 以及各种 UTF-16 和 UTF-32 编码。我对 Unicode 了解不多(尽管我读过 Joel Spolsky 的文章和 维基百科页面)。
现在我正在使用 anstd::istream
并读取我的输入char
,char
然后将(必要时)存储在std::string
. 我想
- 修改它(不费吹灰之力)以支持上述编码,并且
- 弄清楚如何测试上述编码(我有点像白面包美国人,甚至不知道如何用另一种编码制作示例文本文件),理想情况下
- 以跨平台的方式执行此操作。
另外,如果可能的话,我想尽可能地节省空间(所以如果我们不需要超过一个字节/字符,我们就不会使用它)。据我了解,这意味着以 UTF-8 存储,这很好,但我不知道执行此操作的标准字符串(据我了解,wchar_t
具有实现定义的大小和编码)。