在项目开发中、我们经常会遇到字符出现乱码的情况、这个时候我们就需要用到转码来将其正常显示、在这里我们的思路是首先判断其编码、然后将其转换成我们需要的编码类型、
判断字符编码和转换编码代码如下:
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. }