為什么當我遍歷這個.NET C#字串的每個單個字符Arabic text: ????????的位置13日,我得到了錯誤的信了嗎?'?' 而不是 '?'。
我如何解決它?

uj5u.com熱心網友回復:
阿拉伯語是從右到左書寫的。箭頭指向偏移量 20 處的字符。
你指的是最后一個
0: U 0041 LATIN CAPITAL LETTER A
1: U 0072 LATIN SMALL LETTER R
2: U 0061 LATIN SMALL LETTER A
3: U 0062 LATIN SMALL LETTER B
4: U 0069 LATIN SMALL LETTER I
5: U 0063 LATIN SMALL LETTER C
6: U 0020 SPACE
7: U 0074 LATIN SMALL LETTER T
8: U 0065 LATIN SMALL LETTER E
9: U 0078 LATIN SMALL LETTER X
10: U 0074 LATIN SMALL LETTER T
11: U 003A COLON
12: U 0020 SPACE
13: U 067B ARABIC LETTER BEEH
14: U 06A0 ARABIC LETTER AIN WITH THREE DOTS ABOVE
15: U 06A3 ARABIC LETTER FEH WITH DOT BELOW
16: U 069F ARABIC LETTER TAH WITH THREE DOTS ABOVE
17: U 06AF ARABIC LETTER GAF
18: U 06AF ARABIC LETTER GAF
19: U 069A ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE
20: U 068F ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS
這并不是說一個字素(視覺元素)可以由多個 Unicode 代碼點組成,并且 C# 使用代理對和多個char值來表示一些 Unicode 代碼點。
例如,存在一個腳本,其中存在以下字素:
- 字素由 Unicode 代碼點 U 11A0B 后跟 U 11A33 組成。
- C# 將 U 11A0B 編碼為字符 0xD806 后跟 0xDE0B。
- C# 將 U 11A33 編碼為字符 0xD806 后跟 0xDE33。
因此字素將由以下四個char值的序串列示!
- 0xD806
- 0xDE0B
- 0xD806
- 0xDE33
不,這不僅適用于古老的語言。許多人每天都在使用“??”。
- 字素由 Unicode 代碼點 U 1F600 組成。
- C# 將 U 1F600 編碼為字符 0xD83D 后跟 0xDE00。
- 我不熟悉有問題的劇本,所以我不知道這個角色在實踐中是否有意義。但如果這個沒有,其他類似的角色確實有意義。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/365815.html
