Java认证之Java中编码以及Unicode总结(10)) \$ C8 u" }" U: }
6.7Google学习乱码0 ^) p$ V+ T( E7 W( I7 n' \
http://www.google.cn/search?hl=zh-CN&newwindow=1&q=学习
8 ]& X" a& X* X6 \" D 出现乱码。
5 r7 P9 e* d+ n# W A& o 6.8 java 编译时的乱码0 U; s! Z" n$ g* n* ?9 m
对于不是平台默认编码的情况下,java源文件在编译时,需要指定源文件的编码,否则无法正常编译。
* o5 d. k+ ^. N 1、对于win下默认的GBK编码4 z x; J0 G/ T( G- n
C:\》javac SqlUtility.java9 N1 P/ V) }: ?" F8 r* d, G
C:\》javac -encoding GBK SqlUtility.java
3 Y# S/ V5 c. _3 e% g m C:\》javac -encoding utf-8 SqlUtility.java O1 y4 x+ k5 z* q
14
4 c* D! c9 [# p1 `' O SqlUtility.java:24: 警告:编码 utf-8 的不可映射字符9 o' `+ b+ z3 w( l
* ????????????????4 a. h1 A# k( v5 r. M: B; o
^
: G" I7 s$ b ` 2、对于unicode的默认是utf-16: E% c7 @9 Y6 u+ a
C:\》javac SqlUtility.java0 f6 R$ ?, z/ `2 Q/ J, t# F
SqlUtility.java:38: 非法字符: \0
% ^+ M: T9 B, H C:\》javac -encoding utf-16 SqlUtility.java: S/ u# m( C% n K% u
3、对于utf-8的编码,win下需要删除文件头的二进制编码EFBBBF(因为它是由Unicode标准的FEFF,为了保证字节序而存在),并不是+ b) A) G; j. _ G2 K
C:\》javac SqlUtility.java. A1 A( l0 l4 m; k
SqlUtility.java:1: 警告:编码 GBK 的不可映射字符5 }! ]6 N/ U+ |! ~
锘?**5 E/ y4 Q7 k" f; A& E
^4 ~* Y" t' _" t; ~
SqlUtility.java:1: 非法字符: \65533& l4 b: W _5 A& S, Z: t, V5 D
锘?**
# @ M' Y! a6 t9 {0 A5 y. L& I4 q ^
) y; u6 p6 I6 l% o2 J 1 错误+ X w z: e8 ^, W
1 警告
. q5 m7 M/ |2 K9 N' ` C:\》javac -encoding utf-16 SqlUtility.java: d( H7 W$ A- ]9 h- Y
SqlUtility.java:1: 非法字符: \613711 Q0 \6 w& g" `( }7 s) F0 Q* W; k
C:\》javac -encoding utf-8 SqlUtility.java
- ]/ v4 Q! m; j2 X- L SqlUtility.java:1: 非法字符: \652794 @5 c4 L( W! S& F" G x0 n
?/**
6 h5 Q* Q5 f+ U) P. R ^* H- E6 b5 a. d( S! n' Y* w
1 错误
4 C/ i: Z% u3 c% d( T) ]5 U6 }2 \ 注:删除EFBBBF之后的
6 Z3 w x7 A; b, n3 V5 K5 B- ?! _ C:\》javac -encoding utf-8 SqlUtility.java |