这个主要是看字体支持到多少吧。
GB18030-2000就两万多字,GB18030-2005就七万多字。
要看字体对中文支持到什么级别,可以试试几个特殊的字。
GB2312、GBK现在一般都是支持的。
试试“䶭(龙+王)”(
http://www.zdic.net/z/14/js/4DAD.htm),若能正确显示,则表明支持GB18030-2000。
再试试“꧰(富+有)”(
http://www.zdic.net/z/af/js/2A9F0.htm),若能正确显示,则表明支持GB18030-2005。
我的建议是不要使用GB18030!
首先,GB18030中个别字符的代码是会变化的。拿到一个文件,即使你知道是GB18030编码的,但不明确GB18030-2000,还是GB18030-2005,到时就会出问题;而Unicode则不一样,只要不断更新的Unicode规范指定了某个代码表示某个字符,就会始终表示一个字符,不会出现前后不一致的情况。(当然前提是不要使用私用区的字符。私用区按Unicode规定就会是按程序自己的方式去解释的。私用区又称PUA。)
其次,支持GB18030的程序其实非常少,而且会越来越少。因为GB18030是中国自己制定的,而Unicode才是国际通行的。所以支持后者的程序自然会远多过前者。
第三,即使程序说它支持GB18030,如前面说的,你也不会知道是GB18030-2000,还是GB18030-2005。实际上这会是与操作系统相关的,如果在Windows 7及以下操作系统,则会是GB18030-2000;如果是在Windows 8及以上,则会是GB18030-2005。这意味着如果文件包含了那些字符代码在GB18030-2000和GB18030-2005中不同的字符,则在Windows 7和Windows 8中处理可能得到不同的结果。
最后,Linux(Android、Ubuntu等)默认就是UTF-8,中文Windows虽然默认是GBK,但也是支持UTF-8的,所以只要将文件保存为带UTF-8标记(BOM、Byte Order Mark,EF BB BF)的UTF-8格式,只要有字体支持,无论在安卓手机、Windows、Linux都会看到一样的结果,非常省心。GB18030等就不一样了,它没有文件头标记,你在Windows下存一个文件,拿到别的地方,完全可能被误判成GB2312、GBK、GB18030-2000和GB18030-2005中的任何一个……拿到非中文Windows(如日文Windows、英文Windows)上用记事本打开甚至铁定乱码。