1

我正在用 C++ 编写一个软件,它与 UTF-16 编码一起正常工作很重要。但是,由于对于大多数用途而言,UTF-16几乎是一种固定编码(它不是),我想知道在哪里可以找到一些可以用来测试它是否正常工作的字符串。

用拉丁字母甚至我国家的重音字母来测试它几乎没有用,所以我不确定我应该使用什么样的字符来测试。

注意:该软件是一个 C++ 库,我想将 UTF-16 用于其 API 和内部存储。

欢迎任何建议!

4

3 回答 3

3

没有代理对的 UTF-16 范围是 U+0000 到 U+FFFF。上面的http://www.unicode.org/charts/中的任何内容都可以。

如果您查看http://www.unicode.org/Public/UCD/latest/ucd/Blocks.txt,这显示了不同 Unicode 块的字符范围,因此:

10000..1007F; Linear B Syllabary
10080..100FF; Linear B Ideograms
10100..1013F; Aegean Numbers
10140..1018F; Ancient Greek Numbers
10190..101CF; Ancient Symbols
101D0..101FF; Phaistos Disc
10280..1029F; Lycian
102A0..102DF; Carian
10300..1032F; Old Italic
10330..1034F; Gothic
10380..1039F; Ugaritic
103A0..103DF; Old Persian
10400..1044F; Deseret
10450..1047F; Shavian
10480..104AF; Osmanya
10800..1083F; Cypriot Syllabary
10840..1085F; Imperial Aramaic
10900..1091F; Phoenician
10920..1093F; Lydian
10980..1099F; Meroitic Hieroglyphs
109A0..109FF; Meroitic Cursive
10A00..10A5F; Kharoshthi
10A60..10A7F; Old South Arabian
10B00..10B3F; Avestan
10B40..10B5F; Inscriptional Parthian
10B60..10B7F; Inscriptional Pahlavi
10C00..10C4F; Old Turkic
10E60..10E7F; Rumi Numeral Symbols
11000..1107F; Brahmi
11080..110CF; Kaithi
110D0..110FF; Sora Sompeng
11100..1114F; Chakma
11180..111DF; Sharada
11680..116CF; Takri
12000..123FF; Cuneiform
12400..1247F; Cuneiform Numbers and Punctuation
13000..1342F; Egyptian Hieroglyphs
16800..16A3F; Bamum Supplement
16F00..16F9F; Miao
1B000..1B0FF; Kana Supplement
1D000..1D0FF; Byzantine Musical Symbols
1D100..1D1FF; Musical Symbols
1D200..1D24F; Ancient Greek Musical Notation
1D300..1D35F; Tai Xuan Jing Symbols
1D360..1D37F; Counting Rod Numerals
1D400..1D7FF; Mathematical Alphanumeric Symbols
1EE00..1EEFF; Arabic Mathematical Alphabetic Symbols
1F000..1F02F; Mahjong Tiles
1F030..1F09F; Domino Tiles
1F0A0..1F0FF; Playing Cards
1F100..1F1FF; Enclosed Alphanumeric Supplement
1F200..1F2FF; Enclosed Ideographic Supplement
1F300..1F5FF; Miscellaneous Symbols And Pictographs
1F600..1F64F; Emoticons
1F680..1F6FF; Transport And Map Symbols
1F700..1F77F; Alchemical Symbols
20000..2A6DF; CJK Unified Ideographs Extension B
2A700..2B73F; CJK Unified Ideographs Extension C
2B740..2B81F; CJK Unified Ideographs Extension D
2F800..2FA1F; CJK Compatibility Ideographs Supplement
E0000..E007F; Tags
E0100..E01EF; Variation Selectors Supplement

任你选!

此外,如果您找到的文本采用其他编码(如 UTF-8),您可以使用类似的程序iconv将其转换为 UTF-16。

于 2013-11-07T21:43:22.887 回答
0

处理此维基百科页面的文本。它有很多楔形文字与拉丁字母混合。

于 2013-11-07T21:41:38.433 回答
0

代码点高于 U+10000 的任何字符(非 BMP 字符)都可以,例如带有表情符号的文本。这是因为只有非 BMP 字符将被编码为代理对,即两个 UTF-16 代码单元。

于 2013-11-07T21:42:11.017 回答