使用java编程恢复乱码

在Java语言String类中:

  • public byte[] getBytes(String charsetName):将一个字符串按指定charset编码为二进制形式的数组
  • public String(byte bytes[], String charsetName):将指定的 byte 数组按指定的 charset 解码为一个字符串

对于简单乱码可以使用这两个方法进行暴力破解
样本代码如下:

import java.util.Arrays;
import java.util.Scanner;
import java.util.Stack;public class Main {public static void main(String[] args) throws Exception {recover("ǿ׳µÄÈËÉúÎÞÐè½âÊÍ");}public static void recover(String str) throws Exception{String[] charsets = new String[]{"windows-1252","GB18030","Big5","UTF-8"};for(int i=0;i<charsets.length;i++){for(int j=0;j<charsets.length;j++){if(i!=j){String s = new String(str.getBytes(charsets[i]),charsets[j]);System.out.println(s+"    "+"正确编码: "+charsets[j]+", 错误解码: "+charsets[i]);System.out.println();}}}}
}

运行程序,在输出结果中寻找可能的答案

使用java编程恢复乱码相关推荐

  1. Java编程的逻辑 (29) - 剖析String

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  2. Java编程的逻辑 (56) - 文件概述

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  3. Java编程的逻辑 (62) - 神奇的序列化

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  4. 对象导论---JAVA编程思想

    第一章 对象导论 序言 "我们之所以将自然界分解,组织成各种概念,并按其含义分类,主要是因为我们是整个口语交流社会共同遵守的协定的参与者,这个协定以语言的形式固定下来-除非赞成这个协定中规定 ...

  5. 阿里巴巴对Java编程【注释规约】的规约

    转载自 阿里巴巴对Java编程[注释规约]的规约 注释规约 1. [强制]类.类属性.类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用//  xxx 方式. 说明:在 ID ...

  6. JAVA 代码交互率低的原因分析,深入剖析Java编程中的中文问题及建议最优解决方法...

    说明:本文为作者原创,作者联系地址为: josserchai@yahoo.com .由于 Java 编程中的中文 问题是一个老生常谈的问题,在阅读了许多关于 Java 中文问题解决方法之后,结合作者的 ...

  7. Java编程思想 (1~10)

    [注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第一章 对象导论 1.万物皆对象 2.程序就是对象的集合 3.每个对象都是由其它对象所 ...

  8. java编程思想2_《JAVA编程思想2》笔记

    第 1 章 对象入门 Smalltalk 的五大基本特征 (1) 所有东西都是对象 (2) 每个程序都是一大堆对象的组合:通过消息的传递一个对象可告诉另一个对象该做什么 (3) 每个对象都有自己的存储 ...

  9. Java 编程要点之并发(Concurrency)详解

    本文同步至 http://www.waylau.com/essential-java-concurrency 计算机用户想当然地认为他们的系统在一个时间可以做多件事.他们认为,他们可以工作在一个字处理 ...

最新文章

  1. 如何在框架外部自定义C++ OP
  2. vi/vim 删除:一行, 一个字符, 单词, 每行第一个字符 命令
  3. ERP项目成败的三个因素
  4. mysql校对规则设计编码命令
  5. C#多维数组与嵌套数组
  6. Anaconda简介及其下载 安装 配置 使用 卸载
  7. 分享几种绕过防注入的方法
  8. 中国数字压力计市场趋势报告、技术动态创新及市场预测
  9. 图解大数据 | 基于Spark RDD的大数据处理分析
  10. 达尔优EM915镜面板游戏鼠标拆机教程
  11. 概率论的学习和整理8: 几何分布
  12. 3DMAX文件导入到OSG中。
  13. 服务器怎么买,腾讯云服务器购买三种流程介绍
  14. 【深度学习】实战之MNIST
  15. CSS3 实现圆圈动态发光特效动画的制作
  16. 计算平均值和标准方差。
  17. 大气快速辐射传输模型RTTOV12.2安装教程及心得体会
  18. 团队管理中,如何提升团队执行力?
  19. 一、node.js的理解?优缺点?应用场景?
  20. 厦门感芯科技MC3172(1):介绍和环境搭建

热门文章

  1. 高精度快照式高光谱成像
  2. spring-boot-maven-plugin:3.0.0:repackage 报错原因
  3. ppt英文怎么转换成中文?快来收藏这些翻译技巧
  4. Excel操作快捷键
  5. 桥牌笔记:失墩合二为一
  6. 调用笔记本的摄像头实现基于opencv的视频人脸识别(中文显示和英文显示)以及 index 480 is out of bounds for axis 0 with size 480错误的解决
  7. 删除数据后无法恢复的固态盘
  8. 会计学(固定资产测试)
  9. ELK性能优化实战分析:如何化身BAT面试收割机
  10. 同城生鲜配送小程序开发