引用第2楼慕容枫叶于2008-10-27 19:33发表的 : $ X4 C8 p1 O0 k) D% X' D, K
…………
# M* s: [/ e- C1 g. _ W+ Q字体变小了。。。看不清楚、、、 3 i1 }2 r1 x* {% N7 B
2 Z- ^4 i- i; ~6 i: c" d
如果你能说清楚 1 O( Z A, j7 J* a; W
双字节unicode英文文本替换为双字节unicode中文文本
9 {# w2 y, J: }. w* G....... 4 Z5 w) H ]9 L. q+ Q8 z; r
" `. F- m. b- Y. ]1 K
l8 m* V+ J a4 Z8 @由于每种语言都制定了自己的字符集,导致最后存在的各种字符集实在太多,在国际交流中要经常转换字符集非常不便。因此,提出了Unicode字符集,它固定使用16 bits(两个字节、一个字)来表示一个字符,共可以表示65536个字符。将世界上几乎所有语言的常用字符收录其中,方便了信息交流。标准的Unicode称为UTF-16。后来为了双字节的Unicode能够在现存的处理单字节的系统上正确传输,出现了UTF-8,使用类似MBCS的方式对Unicode进行编码。, d5 _! l" {; O, \# ]
- ^+ ]3 J) z; r! w9 f8 N& a( X当一个软件打开一个文本时,它要做的第一件事是决定这个文本究竟是使用哪种字符集的哪种编码保存的。软件有三种途径来决定文本的字符集和编码:
4 R$ S; Z: o _) N 最标准的途径是检测文本最开头的几个字节,如下表:, [; f7 a0 }' x- k6 Z8 }) M4 H0 _
开头字节 Charset/encoding1 ~0 r% b0 t% m
EF BB BF UTF-8
! u1 u! j- S/ z' b* TFE FF UTF-16/UCS-2, little endian
+ C! j, m+ n! N: w7 I3 ?) j5 `- g; KFF FE UTF-16/UCS-2, big endian
5 V4 t. W \" l+ s" s/ D9 c7 y( @, gFF FE 00 00 UTF-32/UCS-4, little endian.
0 d& Z: S7 q8 L7 C+ L00 00 FE FF UTF-32/UCS-4, big-endian.
& C0 [+ t" t% l* a7 P! Q5 p- x% \- D) T' U, C4 v) G( B
不论是中文还是英文,只要是UTF-16,就一定是2个字节,具体的码表可以查有关资料。
$ b3 W- _6 V4 Y+ T这个游戏的文本是UTF-16编码,是在头部有FF FE的缘故。
- ?" }0 f; W+ _" l% P1 V6 r: s6 ?' V9 l
7 i* O5 H! E; C4 ~/ I/ l
! |) D( L) ^# s% m" N9 P% \
5 z9 [" |# F* e' l+ q' S1 B
$ I6 g5 V5 f* N# u, O |