编码表

Edit

 

编码表

常见编码表:

ASCII:美国标准信息交换码,用一个字节的7位表示;
ISO8859-1:欧洲码表,用一个字节的8位表示;
GB2312:中国中文编码表;
GBK:中国中文编码表升级;
Unicode:国际标准表;
UTF-8:国际标准表升级

编码:
String-->byte[]; str.getBytes(charsetName):按照指定字符集进行编码,如果里面不传参数就是按照默认字符集编码

解码:
byte[]-->String; new String(byte[],charsetName):按照指定字符集解码字符数组


1.import java.util.*;
2.class EncodeDemo
3.
{
4. public static void main(String[] args) throws Exception
5.
{
6. //编码
7. String s = "你好";
8. byte[] b1 = s.getBytes("GBK");//这里如果指定的字符集不受支持会抛出UnsupportedEncodingException
9. System.out.println(Arrays.toString(b1));
10. //解码
11. String s1 = new String(b1,"ISO8859-1");
12. System.out.println(s1);
13. //因为上面按照错误的字符集解码,所以重新编码后解码
14. byte[] b2 = s1.getBytes("ISO8859-1");
15. System.out.println(Arrays.toString(b2));
16. String s2 = new String(b2,"GBK");
17. System.out.println(s2);
18. }
19.}
20.

编码的一个特殊情况:”联通”
因为”联通”的GBK编码的开始部分和UTF-8编码形式一致,所以记事本会按照UTF-8形式来解码产生乱码

1.import java.util.*;
2.class EncodeDemo2
3.
{
4. public static void main(String[] args) throws Exception
5.
{
6. String s = "联通";
7. byte[] by = s.getBytes("gbk");
8. for (byte b : by)
9. {
10. System.out.println(Integer.toBinaryString(b&255));
11. }
12. /*
13. 结果:
14. 11000001
15. 10101010
16. 11001101
17. 10101000
18. 这个结果和UTF-8的编码形式一致
19. */

20. /*
21. 与上255就可以保留最低8位
22. 如果不 & 255 的结果为:
23. 11111111111111111111111111000001
24. 11111111111111111111111110101010
25. 11111111111111111111111111001101
26. 11111111111111111111111110101000
27. */

28. }
29.}
@%2802.%u8D44%u6599%29%5B%20%u7F16%u7801%u8868%5D%0A%23%u7F16%u7801%u8868%0A**%u5E38%u89C1%u7F16%u7801%u8868%3A**%0A%3EASCII%3A%u7F8E%u56FD%u6807%u51C6%u4FE1%u606F%u4EA4%u6362%u7801%2C%u7528%u4E00%u4E2A%u5B57%u8282%u76847%u4F4D%u8868%u793A%3B%0AISO8859-1%3A%u6B27%u6D32%u7801%u8868%2C%u7528%u4E00%u4E2A%u5B57%u8282%u76848%u4F4D%u8868%u793A%3B%0AGB2312%3A%u4E2D%u56FD%u4E2D%u6587%u7F16%u7801%u8868%3B%0AGBK%3A%u4E2D%u56FD%u4E2D%u6587%u7F16%u7801%u8868%u5347%u7EA7%3B%0AUnicode%3A%u56FD%u9645%u6807%u51C6%u8868%3B%0AUTF-8%3A%u56FD%u9645%u6807%u51C6%u8868%u5347%u7EA7%0A%0A%0A**%u7F16%u7801%3A**%0A%60String--%3Ebyte%5B%5D%3B%20%20str.getBytes%28charsetName%29%60%3A%u6309%u7167%u6307%u5B9A%u5B57%u7B26%u96C6%u8FDB%u884C%u7F16%u7801%2C%u5982%u679C%u91CC%u9762%u4E0D%u4F20%u53C2%u6570%u5C31%u662F%u6309%u7167%u9ED8%u8BA4%u5B57%u7B26%u96C6%u7F16%u7801%0A%0A**%u89E3%u7801%3A**%0A%60byte%5B%5D--%3EString%3B%20%20new%20String%28byte%5B%5D%2CcharsetName%29%60%3A%u6309%u7167%u6307%u5B9A%u5B57%u7B26%u96C6%u89E3%u7801%u5B57%u7B26%u6570%u7EC4%0A%0A----%0A%60%60%60java%0Aimport%20java.util.*%3B%0Aclass%20%20EncodeDemo%0A%7B%0A%09public%20static%20void%20main%28String%5B%5D%20args%29%20throws%20Exception%0A%09%7B%0A%09%09//%u7F16%u7801%0A%09%09String%20s%20%3D%20%22%u4F60%u597D%22%3B%0A%09%09byte%5B%5D%20b1%20%3D%20s.getBytes%28%22GBK%22%29%3B//%u8FD9%u91CC%u5982%u679C%u6307%u5B9A%u7684%u5B57%u7B26%u96C6%u4E0D%u53D7%u652F%u6301%u4F1A%u629B%u51FAUnsupportedEncodingException%20%0A%09%09System.out.println%28Arrays.toString%28b1%29%29%3B%0A%09%09//%u89E3%u7801%0A%09%09String%20s1%20%3D%20new%20String%28b1%2C%22ISO8859-1%22%29%3B%0A%09%09System.out.println%28s1%29%3B%0A%09%09//%u56E0%u4E3A%u4E0A%u9762%u6309%u7167%u9519%u8BEF%u7684%u5B57%u7B26%u96C6%u89E3%u7801%2C%u6240%u4EE5%u91CD%u65B0%u7F16%u7801%u540E%u89E3%u7801%0A%09%09byte%5B%5D%20b2%20%3D%20s1.getBytes%28%22ISO8859-1%22%29%3B%0A%09%09System.out.println%28Arrays.toString%28b2%29%29%3B%0A%09%09String%20s2%20%3D%20new%20String%28b2%2C%22GBK%22%29%3B%0A%09%09System.out.println%28s2%29%3B%0A%09%7D%0A%7D%0A%0A%60%60%60%0A---%0A%3E%u7F16%u7801%u7684%u4E00%u4E2A%u7279%u6B8A%u60C5%u51B5%3A%22%u8054%u901A%22%0A%u56E0%u4E3A%22%u8054%u901A%22%u7684GBK%u7F16%u7801%u7684%u5F00%u59CB%u90E8%u5206%u548CUTF-8%u7F16%u7801%u5F62%u5F0F%u4E00%u81F4%2C%u6240%u4EE5%u8BB0%u4E8B%u672C%u4F1A%u6309%u7167UTF-8%u5F62%u5F0F%u6765%u89E3%u7801%u4EA7%u751F%u4E71%u7801%0A%0A%60%60%60java%0Aimport%20java.util.*%3B%0Aclass%20%20EncodeDemo2%20%0A%7B%0A%09public%20static%20void%20main%28String%5B%5D%20args%29%20throws%20Exception%0A%09%7B%0A%09%09String%20s%20%3D%20%22%u8054%u901A%22%3B%0A%09%09byte%5B%5D%20by%20%3D%20s.getBytes%28%22gbk%22%29%3B%0A%09%09for%20%28byte%20b%20%3A%20by%29%0A%09%09%7B%0A%09%09%09System.out.println%28Integer.toBinaryString%28b%26255%29%29%3B%0A%09%09%7D%0A%09%09/*%0A%09%09%u7ED3%u679C%3A%0A%09%0911000001%0A%09%0910101010%0A%09%0911001101%0A%09%0910101000%0A%09%09%u8FD9%u4E2A%u7ED3%u679C%u548CUTF-8%u7684%u7F16%u7801%u5F62%u5F0F%u4E00%u81F4%0A%09%09*/%0A%09%09/*%0A%09%09%u4E0E%u4E0A255%u5C31%u53EF%u4EE5%u4FDD%u7559%u6700%u4F4E8%u4F4D%0A%09%09%u5982%u679C%u4E0D%20%26%20255%20%u7684%u7ED3%u679C%u4E3A%3A%0A%09%0911111111111111111111111111000001%0A%09%0911111111111111111111111110101010%0A%09%0911111111111111111111111111001101%0A%09%0911111111111111111111111110101000%09%0A%09%09*/%0A%09%7D%0A%7D%0A%60%60%60%0A

 

posted @ 2017-07-05 14:47  RuntimExcep  阅读(331)  评论(0)    收藏  举报