一般来说,良好的编程习惯要求在代码里尽量不出现中文,一个是国际化问题,即同一份代码可能要满足不同语言的显示,还一个就是可能产生乱码问题,不同的程序员用不同的IDE导入这份代码可能使用了不同的默认编码。
然而有些场景是必须保持中文的,比如读取某个带样式文本的字体,这个字体的名字可能就叫“宋体”或者“微软雅黑”,用国际化文件的方式解决显然是不合适的,这时候一个解决方法就是转化Unicode码。
字母a的unicode码是10进制的97,或者16进制的61,
汉字一的unicode码是19968,或者16进制的4e00
JavaScript中,
获取字符的unicode码:
"a".charCodeAt(0) 返回97
"一".charCodeAt(0) 返回19968
把编码转化成字符:
String.fromCharCode(97); 返回"a" 或者直接用'\u0061'
String.fromCharCode(19968); 返回"一" 或者直接用"\u4e00"
Java中,
字符转化成编码:
强制转换把char转化成int
System.out.println((int)"一二三".charAt(0));打印19968
编码转化成字符:
强制转换把int转成char
System.out.println(((char)19968) + "" + ((char)97));打印"一a"
或者直接用"\u4e00\u0061" 结果为"一a"
注意获取字符串编码的时候编码如果不是utf8需要做编码转化,比如:
new String("一二三".getBytes(), "GBK");