从第三方下载的java源文件,打开查看里面的中文全部是乱码,无论你使用什么字符编码集都无法正常显示,该文件是用UTF-8编码存档的,使用UTF-8解码也同样是乱码,相信很多人遇到类似的问题,我这里解决过一个经典案例,大家看看,是不是可以给你们提供有用的思路呢?
java源文件的部分内容如下:
import com.htlwk.elts.util.Config;
/**
* ʵÌåÊý¾Ý·ÃÎÊÀà
* ´ËÀàÓÐÁ½¸ö¹¦ÄÜ:
* 1:¶ÁÈ¡²¢½âÎöÅäÖÃÎļþ,½«Êý¾ÝÒÔʵÌåÀàµÄʵÀý±£´æ
* 2:ΪÆäËûÀàÌṩÊý¾Ý(ÌṩÏàÓ¦Êý¾ÝµÄʵÌåÀàʵÀý).
*/
public class EntityContext {
private Config config;//ÓÃÓÚ¶ÁÈ¡propertiesÎļþµÄÀà
/**
* ʹÓÃHashMap±£´æËùÓеÄÓû§¶ÔÏó
* key:Óû§µÄID
* value:¶ÔÓ¦´ËÓû§µÄUser¶ÔÏó
* ʹÓÃHashMap±£´æµÄºÃ´¦ÔÚÓÚ,¸ù¾Ý³ÌÐòµÄÐèÇó½øÐзÖÎöºó·¢ÏÖ,µ±ÓÃ
* »§ÊäÈëIDºÍÃÜÂë½øÐеǼʱ,ÎÒÃÇÏë»ñÈ¡¶ÔÓ¦Õâ¸öIDµÄÓû§Ê±,ʹÓÃ
* HashMap¸üÀûÓÚ²éÕÒ´ËÓû§(ʡȥʹÓÃList»¹Ðè×Ô¼ºÐ´±éÀú¼°ÅжϵÄ
* Âß¼,¶øÇÒHashMap¿ÉÌá¸ß²éѯЧÂÊ)
*/
private Map users =
new HashMap();
/**
* key:¿¼ÌâµÄÄÑÒ×¶È(level)
* value:¶ÔÓ¦ÄѶȵÄÒ»×鿼ÌâList
*/
有经验的程序员就是靠猜测,认为这很有可能是latin1编码导致中文乱码,而在国内很多程序员会使用GBK编码存档,而此文件曾经上传到云盘保存过,所以大致的编码路径如下:
根据上图的编码路径,我们写段代码检验下,是否能够取到正确的Unicode编码从而正常显示中文字符,代码如下:
package com.htlwk.day04.demo01;
public class ErrorCodeConversion {
static String s ="import com.htlwk.elts.util.Config;\n" +
"\n" +
"/**\n" +
" * ʵÌåÊý¾Ý·ÃÎÊÀà\n" +
" * ´ËÀàÓÐÁ½¸ö¹¦ÄÜ:\n" +
" * 1:¶ÁÈ¡²¢½âÎöÅäÖÃÎļþ,½«Êý¾ÝÒÔʵÌåÀàµÄʵÀý±£´æ\n" +
" * 2:ΪÆäËûÀàÌṩÊý¾Ý(ÌṩÏàÓ¦Êý¾ÝµÄʵÌåÀàʵÀý).\n" +
" */\n" +
"public class EntityContext {\n" +
" private Config config;//ÓÃÓÚ¶ÁÈ¡propertiesÎļþµÄÀà\n" +
" /**\n" +
" * ʹÓÃHashMap±£´æËùÓеÄÓû§¶ÔÏó\n" +
" * key:Óû§µÄID\n" +
" * value:¶ÔÓ¦´ËÓû§µÄUser¶ÔÏó\n" +
" * ʹÓÃHashMap±£´æµÄºÃ´¦ÔÚÓÚ,¸ù¾Ý³ÌÐòµÄÐèÇó½øÐзÖÎöºó·¢ÏÖ,µ±ÓÃ\n" +
" * »§ÊäÈëIDºÍÃÜÂë½øÐеǼʱ,ÎÒÃÇÏë»ñÈ¡¶ÔÓ¦Õâ¸öIDµÄÓû§Ê±,ʹÓÃ\n" +
" * HashMap¸üÀûÓÚ²éÕÒ´ËÓû§(ʡȥʹÓÃList»¹Ðè×Ô¼ºÐ´±éÀú¼°ÅжϵÄ\n" +
" * Âß¼\u00AD,¶øÇÒHashMap¿ÉÌá¸ß²éѯЧÂÊ)\n" +
" */\n" +
" private Map users =\n" +
" new HashMap();\n" +
" \n" +
" /**\n" +
" * key:¿¼ÌâµÄÄÑÒ×¶È(level)\n" +
" * value:¶ÔÓ¦ÄѶȵÄÒ»×鿼ÌâList\n" +
" */";
public static void main(String[] args) {
if (s != null){
try{
int length = s.length();
byte[] buffer = new byte[length];
//0x81 to Unicode 0x0081, 0x8d to 0x008d, 0x8f to 0x008f, 0x90 to 0x0090, and 0x9d to 0x009d.
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?