精华内容
下载资源
问答
  • java 字符串中文乱码解决合集

    万次阅读 2018-12-28 17:22:48
    可以肯定的说出现了中文乱码这种问题,基本上都是因为字符的编码、解码的格式不同。 常见的编码格式 ASCII、ISO-8859-1、GB2312、GBK、UTF-8(推荐)、UTF-16 Question 1 文档乱码 eclipse 编辑页面出现中文乱码...

    可以肯定的说出现了中文乱码这种问题,基本上都是因为字符的编码、解码的格式不同。

    常见的编码格式 ASCII、ISO-8859-1、GB2312、GBK、UTF-8(推荐)、UTF-16

    Question 1 文档乱码

    eclipse 编辑页面出现中文乱码,诺,就是下面这种,一般来说eclipse是默认GBK编码的,当有时候我们导入了UTF-8编码的工程就容易出现这种情况。

    通常我们最好在刚安装好eclipse的时候就统一设置为UTF-8。不然项目文件有的是GBK有的是UTF-8就难受了。格式不统一,难受。

    eclipse 设置编码格式

    window > preferences > general > WorkSpace 

    window > preferences > general > Content Types

    工程文件夹下

    右键 >properties > resource 

    上述的操作只会对新增的文件有效。并不会解决我们的乱码问题。

    这种text文档出现乱码,很难搞,而且很容易发生不可逆的变化,如果需重新设置编码的时候最好备份。

    当然还有一个补救措施,在单个文件下

    右键 >properties > resource  

    这个操作会改变当前文件的解码方式。如果没有对应格式可以手动添加。

    当然,有些时候也是然并软

    效果如下:

    各IDE设置应该都差不多,安卓studio还会自动检测,看着点就行了,就eclipse坑。

    Question 2 网页乱码

      ......我都对这种乱码没印象了

    设置为一样的就完事了,当然前提是这种编码格式支持中文,不然照样还是会有中文乱码。

    还有servelt中。。。

    response.setCharacterEncoding("utf-8");
    request.setCharacterEncoding("utf-8");
    response.setContentType("application/json; charset=utf-8");

    Question 3 流乱码

    java IO流要是出现乱码基本也是编码、解码格式设置不统一的问题,基本上我们加上一层格式设置就ok了

    new String(s1.getBytes("编码格式"), "解码格式");

    如果自己没有设置的话,采用的就是默认设置,所以要想不会出现乱码,自己最好加上一层统一格式设置。

    package J;
    
    import java.io.UnsupportedEncodingException;
    import java.nio.charset.Charset;
    
    public class Test {
    	//ASCII、ISO-8859-1、GB2312、GBK、UTF-8、UTF-16
    	public static String ENCODING_UTF8 = "UTF-8";
    	public static String ENCODING_GBK = "GBK";
    	public static String ENCODING_GB2312 = "GB2312";
    
    	public static void main(String[] args) throws UnsupportedEncodingException {
    		// TODO Auto-generated method stub
    		//
    		System.out.println("默认的编码格式" + Charset.defaultCharset());
    		testOne();
    
    	}
    
    	public static void testOne() throws UnsupportedEncodingException {
    		String s1, s2, s3, s4;
    		s1 = "你好 hello world";
    		s2 = new String(s1.getBytes(ENCODING_GB2312), ENCODING_GB2312);
    		s3 = new String(s1.getBytes(ENCODING_UTF8), ENCODING_UTF8);
    		s4 = new String(s1.getBytes(ENCODING_GBK), ENCODING_GBK);
    
    		System.out.println("s1:" + s1);
    		System.out.println("s2:" + s2);
    		System.out.println("s3:" + s3);
    		System.out.println("s4:" + s4);
    	}
    
    }
    

     

    展开全文
  • 本文通过实例代码给大家介绍了Java判断字符串是否含有乱码的方法,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
  • 1.检测是否为乱码public static booleanisMessyCode(String strName) {Pattern p= Pattern.compile("\\s*|\t*|\r*|\n*");Matcher m=p.matcher(strName);String after= m.replaceAll("");String temp= after....

    1.检测是否为乱码

    public static booleanisMessyCode(String strName) {

    Pattern p= Pattern.compile("\\s*|\t*|\r*|\n*");

    Matcher m=p.matcher(strName);

    String after= m.replaceAll("");

    String temp= after.replaceAll("\\p{P}", "");char[] ch =temp.trim().toCharArray();float chLength = 0;float count = 0;for (int i = 0; i < ch.length; i++) {char c =ch[i];if (!Character.isLetterOrDigit(c)) {if (!isChinese(c)) {

    count= count + 1;

    }

    chLength++;

    }

    }float result = count /chLength ;if (result > 0.4) {return true;

    }else{return false;

    }

    }

    2.检查字符是否为中文

    private static boolean isChinese(charc) {

    Character.UnicodeBlock ub=Character.UnicodeBlock.of(c);if (ub ==Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS|| ub ==Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS|| ub ==Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A|| ub ==Character.UnicodeBlock.GENERAL_PUNCTUATION|| ub ==Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION|| ub ==Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {return true;

    }return false;

    }

    3.中文转换编码

    public staticString toChinese(String msg){if(isMessyCode(msg)){try{return new String(msg.getBytes("ISO8859-1"), "UTF-8");

    }catch(Exception e) {

    }

    }returnmsg ;

    }

    Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS : 4E00-9FBF:CJK 统一表意符号

    Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS :F900-FAFF:CJK

    兼容象形文字 Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A

    :3400-4DBF:CJK 统一表意符号扩展 A

    CJK的意思是“Chinese,Japanese,Korea”的简写 ,实际上就是指中日韩三国的象形文字的Unicode编码

    Character.UnicodeBlock.GENERAL_PUNCTUATION :2000-206F:常用标点

    Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION :3000-303F:CJK 符号和标点

    Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS :FF00-FFEF:半角及全角形式

    Character.isLetter(c):判断字符是否是字母

    Character.isDigit(c):判断字符是否是数字

    展开全文
  • 问题描述:在TOMCAT里经常出现这种情况:我们输入的字符串汉字(默认的编码是GBK),但是TOMCAT默认的是ISO8859-1编码,于是存在了错误,导致了乱码的产生。解决办法:将从Tomcat得到的字符串再次利用ISO8859-1将其...

    69fb17eed8356c31d2cb3a44df3f11a5.png

    问题描述:

    在TOMCAT里经常出现这种情况:我们输入的字符串是汉字(默认的编码是GBK),但是TOMCAT默认的是ISO8859-1编码,于是存在了错误,导致了乱码的产生。

    解决办法:

    将从Tomcat得到的字符串再次利用ISO8859-1将其变为字节数组,然后利用GBK进行编码。package cn.com;

    public class Test7 {

    public static void main(String[] args) throws Exception {

    System.out.println("我们输入的汉字,默认编码是gbk");

    String str1="大家好";

    System.out.println("str1="+str1);

    byte [] GBKArr=str1.getBytes("gbk"); //等同于 byte [] b1=s1.getBytes();因为它默认的就是gbk编码

    System.out.println("Tomcat,默认编码是ISO8859-1编码");

    String str2=new String(GBKArr, "iso8859-1");

    System.out.println("str2="+str2);//导致乱码

    System.out.println("把从Tomcat得到的字符串再次利用ISO8859-1将其变为字节数组,然后利用GBK进行编码");

    byte [] ISOArr =str2.getBytes("iso8859-1");

    String result=new String(ISOArr,"gbk");//等同于new String(ISOArr);因为默认的就是gbk编码

    System.out.println("result="+result);

    }

    }

    展开全文
  • java 字符串乱码怎么解决?

    万次阅读 2018-10-18 16:20:45
    1.重新给字符串编码再解码 name = URLEncoder.encode(name, "ISO-8859-1");  name = URLDecoder.decode(name, "UTF-8"); 2.设置编码 name=new String(name.getBytes(),"UTF-8"); ...

    我尝试了所有的设置编码的方法:

    1.重新给字符串编码再解码

    name = URLEncoder.encode(name, "ISO-8859-1");
     name = URLDecoder.decode(name, "UTF-8");

    2.设置编码

    name=new String(name.getBytes(),"UTF-8");

    3.设置编码

     //利用getBytes将unicode字符串转成UTF-8格式的字节数组

     String name=request.getParameter("name");
      byte[] utf8Bytes = name.getBytes("utf-8");
    //然后用utf-8 对这个字节数组解码成新的字符串
      name = new String(utf8Bytes, "utf-8");

    4.在sevlet里面或者有参数通过页面跳转传递过来

     request.setCharacterEncoding("utf-8");

    平时这个问题根本难不住我,关键这一次是jsp传值到嵌有java代码的jsp页面中,比较复杂

    我试了上面的方法都没有用;

    最后用了

     控制台第一行显示吴成贵 (用的是name = new String (name.getBytes("ISO8859-1"),"UTF-8");)

    后面的是用了

    <%
        //1.获得要查询的手环编号
           request.setCharacterEncoding("utf-8");
           String name=request.getParameter("name");

    虽然别人说用 name = new String (name.getBytes("ISO-8859-1"),"UTF-8");是不正规的,但是实用啊!

     

    展开全文
  • Java打印字符串出现乱码问题

    千次阅读 2020-10-16 22:24:24
    我在idea运行我以前写的代码时发现在utf-8编码下运行打印出了乱码,如图: 这是代码位置: 错误原因 是由项目编码和全局编码格式不匹配导致 解决方案 左上角点击File->Editor->File Encodings 把Global ...
  • Java中读取字符串时,不可避免的遇到处理汉字的问题,而汉字乱码也是我们最常遇到的问题。一、首先,我们先分析下java字符串的存储规则。与其它语言一样,java中的String实际上是一个char数组,在java中,一个...
  • java 判断字符串是否乱码

    千次阅读 2019-04-02 12:30:26
    写过后台的童鞋都知道,java乱码是多么的让人无语 public static String isoToUTF(String string) throws Exception { ... //判断是乱码 (GBK包含全部中文字符;UTF-8则包含全世界所有国家需要用到的字符。) ...
  • java中如何判断字符串是否乱码发布时间:2020-06-18 13:43:41来源:亿速云阅读:113作者:鸽子项目中有一个功能 在IE中GET方式提交会产生乱码 但有两个入口都会走这同一段代码固不能直接转码,所以要进行判断传过来...
  • java字符乱码

    2021-03-01 06:37:35
    java中处理字符时,经常会发生乱码,而主要出现的地方在读取文本文件时发生,或者是写入到文件中,在其他地方打开乱码。如下例子:1 BufferedReader br = null;2 try{3 br = new BufferedReader(new ...
  • [Java教程]Spring MVC @ResponseBody返回中文字符串乱码问题0 2015-10-15 17:00:12朋友做小项目练手的时候遇到的,着实让他郁闷够呛..这个问题的确很恶心..项目中引用的json包,直接用@ResponseBody注解返回json字符串...
  • 在IE中GET方式提交会产生乱码 但有两个入口都会走这同一段代码固不能直接转码,所以要进行判断传过来的该值是不是乱码可用以下方式验证:java.nio.charset.Charset.forName("GBK").newEncoder().canEncode("测试") /...
  • /*** 用getBytes(encoding):返回字符串的一个byte数组* 当b[0]为 63时,应该是转码错误* A、不乱码汉字字符串:* 1、encoding用GB2312时,每byte是负数;* 2、encoding用ISO8859_1时,b[i]全是63。* B、乱码的...
  • 将这两个属性转变为字符串的方法是toStr()。 //编写程序,使用MyProgram类, //实现数据的访问和修改,并调用toStr()方法显示该类的属性。 class MyProgramOne { private String[] str; private int data; ...
  • String str_VarMboxRead = "退信原因: DATA ʧ ܶԷ ʻ ʼ ";System.out.println("change chinese before VarMboxRead="+ str_VarMboxRead);//去掉中午字符, ("[\u4e00-\u9fa5]+")这个字符区间...
  • 怎么解决java中的字符乱码问题发布时间:2020-06-28 14:53:09来源:亿速云阅读:108作者:Leah怎么...java字符乱码怎么办?我尝试了所有的设置编码的方法:1.重新给字符串编码再解码name = URLEncoder.encode(name,...
  • /*** 用getBytes(encoding):返回字符串的一个byte数组* 当b[0]为 63时,应该是转码错误* A、不乱码汉字字符串:* 1、encoding用GB2312时,每byte是负数;* 2、encoding用ISO8859_1时,b[i]全是63。* B、乱码的...
  • java字符串乱码处理

    2020-04-26 15:23:21
    直接上代码了! package ... import java.io.UnsupportedEncodingException; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang.StringUtils; ...
  • 1.重新给字符串编码再解码 name = URLEncoder.encode(name, “ISO-8859-1”); name = URLDecoder.decode(name, “UTF-8”); 2.设置编码 name=new String(name.getBytes(),“UTF-8”); 3.设置编码 //利用getBytes将...
  • 一、问题背景。 我们消费activityMQ消息。解析内容出现了乱码。用的是org.fusesource....我们是直接转为字符串的形式String msg = new String(message.getPayload());来解析。再转化为JSONObject数据。 打印出来...
  • 项目中有一个功能 在IE中GET方式提交会产生乱码 但有两个入口都会走这同一段代码固不能直接转码,所以要进行判断传过来的该值是不是乱码可用以下方式验证:java.nio.charset.Charset.forName("GBK").newEncoder()....
  • java控制台输出中文字符串乱码问题

    千次阅读 2021-01-14 12:21:36
    前言:我们在初学Java的时候,做一些测试验证自己的逻辑的时候,会经常用到System.out.println()往控制台打印参数,但是有的时候,会发现打印出来的中文字符串出现乱码。这篇文章讲解下,如何解决这个乱码的问题!...
  • 主要介绍了Android字符串和十六进制相互转化出现的中文乱码问题的相关资料,需要的朋友可以参考下
  • Java 字符串乱码问题解决

    千次阅读 2018-12-13 00:34:53
    乱码字符串进行转码 String decodeStr=null;  decodeStr = URLDecoder.decode(url, "utf-8");
  • Java实现过滤中文乱码

    2021-02-13 00:00:41
    最近在日志数据清洗时遇到中文乱码,如果只要有非中文字符就将该字符串过滤掉,这种方法虽简单但并不可取,因为比如像Xperia™主題、天天四川麻将Ⅱ这样的字符串也会被过滤掉。1. Unicode编码Unicode编码是一种涵盖...
  • Java编程中,经常会碰到汉字的处理及显示问题,以不小心就会产生一大堆乱码或者问号。造成这种问题的根本原因是Java中默认的编码方式是Unicode,而中国人通常使用的文件和DB都是基于GB2312或BIG5等编码,故会出现...
  • java字符串转unicode

    2018-08-01 09:58:04
    这里提供一个能转换十进制和十六进制unicode的java的util类,我们经常会遇到乱码问题,比如在后端与前端交互的时候,由于框架的种种原因,导致乱码,这时候就用到了unicode(万能码),在乱码前转为unicode,就可以...
  • 原因: Spring中解析字符串的转换器默认编码居然是ISO-8859-1 如下所示: 解决方法: 方法一,使用(produces = "application/json; charset=utf-8") @RequestMapping(value="menuTreeAjax", produces = ...
  • 本文实例为大家分享了java中文传值乱码问题,以及解决方法,供大家参考,具体内容如下一般编码格式设置:1.可以经过两次编码处理,即设置字符集后,在插入前解码字符集,也是最有效的方式设置字符集:String value=null;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,859
精华内容 29,943
关键字:

java字符串中文乱码

java 订阅