天天看点

字符编码的判断与转码

在项目开发中、我们经常会遇到字符出现乱码的情况、这个时候我们就需要用到转码来将其正常显示、在这里我们的思路是首先判断其编码、然后将其转换成我们需要的编码类型、

判断字符编码和转换编码代码如下:

1. /**
2.  * 获得字符集编码类型
3.  * @param str 
4.  * @return 返回字符编码类型
5.  */  
6. public static String getCharEncode(String str){  
7.       
8. "GB2312";  
9. try {  
10. if(str.equals(new String(str.getBytes(charEncode),charEncode))){  
11.               
12. return charEncode;  
13.         }  
14. catch (UnsupportedEncodingException e) {  
15.           
16.     }  
17.       
18. "GBK";  
19. try {  
20. if(str.equals(new String(str.getBytes(charEncode),charEncode))){  
21.               
22. return charEncode;  
23.         }  
24. catch (UnsupportedEncodingException e) {  
25.           
26.     }  
27.       
28. "ISO-8859-1";  
29. try {  
30. if(str.equals(new String(str.getBytes(charEncode),charEncode))){  
31.               
32. return charEncode;  
33.         }  
34. catch (UnsupportedEncodingException e) {  
35.           
36.     }  
37.       
38. "UTF-8";  
39. try {  
40. if(str.equals(new String(str.getBytes(charEncode),charEncode))){  
41.           
42. return charEncode;  
43.         }  
44. catch (UnsupportedEncodingException e) {  
45.       
46.     }  
47.       
48. return "";  
49.       
50. }  
51.   
52. /**
53.  * 转成GBK编码
54.  * @param str
55.  * @return
56.  */  
57. public String transcodeToGBK(String str){  
58. return transcode(str,"GBK");  
59. }  
60.   
61. /**
62.  * 转成UTF-8编码
63.  * @param str
64.  * @return
65.  */  
66. public String transcodeToUTF_8(String str){  
67. return transcode(str,"UTF-8");  
68. }  
69.   
70. /**
71.  * 自动转码
72.  * @param str
73.  * @param charEncode 默认UTF-8
74.  * @return
75.  */  
76. public String transcode(String str,String charEncode){  
77.       
78. if(null==charEncode||"".equals(charEncode)){  
79. "UTF-8";  
80.     }  
81.       
82. "";  
83. try {  
84.         String code = getCharEncode(str);  
85. "编码:"+code);  
86. new String(str.getBytes(code),charEncode);  
87. catch (UnsupportedEncodingException e) {  
88. "转码异常:"+e.getMessage());  
89.     }  
90. return temp;  
91. }