`

乱码的处理!程序员永远无法避免的话题 - 1

    博客分类:
  • Java
阅读更多

  为什么说乱码是中国程序员无法避免的话题呢?这个首先要从编码机制上说起,大家都是中文和英文的编码格式不是一样,解码也是不一样的!如果中国的程序员不会遇到乱码,那么只有使用汉语编程。汉语编程是怎么回事我也不大清楚,应该是前年吧,我一朋友给我介绍汉语编程,怎么不错不错?当时因为学习忙没去关注这个,等我闲了,那个朋友不弄这个,问他他也不说不大清楚,最后自己对这个学习也不了了之了。

  今天我写这个不是讲解中英文之间的差距,解码等,我是将我在这几年工作遇到各种各样的乱码的解决方法,总结一样,也希望大家能把自己晕倒解决乱码的方法都说出来,咱们弄一个解决乱码的“葵花宝典”。

  对于Java由于默认的编码方式是 UNICODE,所以用中文也易出问题,常见的解决是

  String s2 = new String(s1.getBytes(“ISO-8859-1”),”GBK”);

  1、utf8解决JSP中文乱码问题

  一般说来在每个页面的开始处,加入:

 

以下是引用片段:
<%@ page language="java" contentType="text/html; charset=UTF-8"  
pageEncoding="UTF-8"%>  
<%  
request.setCharacterEncoding("UTF-8");  
%> 

 

 

  charset=UTF-8 的作用是指定JSP向客户端输出的编码方式为“UTF-8”

  pageEncoding="UTF-8" 为了让JSP引擎能正确地解码含有中文字符的JSP页面,这在LINUX中很有效

  request.setCharacterEncoding("UTF-8"); 是对请求进行了中文编码

  有时,这样仍不能解决问题,还需要这样处理一下:

  String msg = request.getParameter("message");

  String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");

  out.println(st);

  2、Tomcat 5.5 中文乱码

  1)只要把%TOMCAT安装目录%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目录/filters下,如果没有filters目录,就创建一个。

  2)在你的web.xml里加入如下几行:

 

 

以下是引用片段:
<filter>  
<filter-name>Set Character Encoding</filter-name>  
<filter-class>filters.SetCharacterEncodingFilter</filter-class>  
<init-param>  
<param-name>encoding</param-name>  
<param-value>GBK</param-value>  
</init-param>  
</filter>  
<filter-mapping>  
<filter-name>Set Character Encoding</filter-name>  
<url-pattern>/*</url-pattern>  
</filter-mapping> 
  3)完成.

 

  2 get方式的解决办法

  1) 打开tomcat的server.xml文件,找到区块,加入如下一行:

  URIEncoding=”GBK”

  完整的应如下:

  

 

以下是引用片段:
 <Connector  
port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"  
enableLookups="false" redirectPort="8443" acceptCount="100"  
debug="0" connectionTimeout="20000"  
disableUploadTimeout="true"  
URIEncoding="GBK"  
/> 

< p>  2)重启tomcat,一切OK。

  3、xmlHttpRequest中文问题

  页面jsp用的GBK编码

 

 

以下是引用片段:
 代码  
<%@ page contentType="text/html; charset=GBK"%>    
javascript部分 
  代码 
   
function addFracasReport() {  
var url="controler?actionId=0_06_03_01&actionFlag=0010";  
var urlmsg="&reportId="+fracasReport1.textReportId.value; //故障报告表编号  
var xmlHttp=Common.createXMLHttpRequest();  
xmlHttp.onreadystatechange = Common.getReadyStateHandler(xmlHttp, eval("turnAnalyPage"));  
xmlHttp.open("POST",url,true);  
xmlHttp.setRequestHeader( " Content-Type " , " application/x-www-form-urlencoded);  
xmlHttp.send(urlmsg);  

  后台java中获得的reportId是乱码,不知道该怎么转,主要是不知道xmlHttp.send(urlmsg);以后是什么编码?在后面用java来转,试了几种,都没有成功,其中有:

 

  

 

以下是引用片段:
代码 
  public static String UTF_8ToGBK(String str) { 
  try { 
  return new String(str.getBytes("UTF-8"), "GBK"); 
  } catch (Exception ex) { 
  return null; 
  } 
  } 
  public static String UTF8ToGBK(String str) { 
  try { 
  return new String(str.getBytes("UTF-16BE"), "GBK"); 
  } catch (Exception ex) { 
  return null; 
  } 
  } 
  public static String GBK(String str) { 
  try { 
  return new String(str.getBytes("GBK"),"GBK"); 
  } catch (Exception ex) { 
  return null; 
  } 
  } 
  public static String getStr(String str) { 
  try { 
  String temp_p = str; 
  String temp = new String(temp_p.getBytes("ISO8859_1"), "GBK"); 
  temp = sqlStrchop(temp); 
  return temp; 
  } catch (Exception e) { 
  return null; 
  } 
  } 

 

分享到:
评论

相关推荐

    java乱码处理汇总

    乱码的处理!程序员永远无法避免的话题,解决乱码总汇

    Java避免UTF-8的csv文件打开中文出现乱码的方法

    Java避免UTF-8的csv文件打开中文出现乱码的方法 在Java中,避免UTF-8的csv文件打开中文出现乱码的方法是非常重要的。csv文件是 comma separated values 的缩写,常用于数据交换和导入导出操作。然而,在Java中读取...

    乱码处理文件 乱码处理文件

    乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理文件乱码处理...

    2021年台州地区网页程序员岗位薪酬水平报告-最新数据.pdf

    最后,报告中提到的“001▇本次薪酬调研岗位列表一X”可能是报告中岗位列表的一个部分,但由于扫描文本中出现了乱码,这部分内容的具体含义无法准确理解。但可以确定的是,岗位列表应该是详细的各行业或各部门岗位...

    web开发中url乱码处理

    在处理URL乱码时,通常需要将ISO-8859-1编码的字符串转换为UTF-8。 3. **Java后台处理**: - **方法1**:在后台接收参数时,首先将接收到的ISO-8859-1编码的字符串转换为字节数组,然后使用这个字节数组创建UTF-8...

    乱码 编码方式解决 gbk ISO8859-1 utf8 编码

    本文将针对标题中的几种常见编码格式(GBK、ISO 8859-1、UTF-8)以及如何解决由这些编码方式引发的乱码问题进行深入探讨。 #### 一、编码概述 1. **GBK编码**:GBK是GB2312标准的扩展,支持简体中文,是Microsoft ...

    Serv-U9.x 无法上传文件名为中文和出现乱码解决!

    这一步骤的目的是避免服务器强制使用UTF-8编码,而是采用与客户端相匹配的编码格式进行通信,减少乱码的产生。 ### 四、总结 通过上述步骤,可以有效解决Serv-U9.x版本FTP服务器在处理中文文件名时出现的乱码和...

    程序中关于乱码的处理

    【乱码处理】在中国,程序员经常需要面对的一个挑战就是乱码问题,这主要源于中英文字符编码的不同。编码机制是导致乱码的核心原因,中文字符通常使用GBK或GB2312等编码,而英文字符则普遍采用ASCII或Unicode。如果...

    oracle乱码解决功能!!!

    oracle乱码解决功能 Oracle乱码解决功能是指在使用Oracle数据库时,汉字显示异常的解决方法。这种问题的产生是由于字符集的设置不当所致。字符集是Oracle为适应不同语言文字显示而设定的,用于汉字显示的字符集...

    解决web中文乱码

    中文乱码通常出现在两个场景:1) 服务器接收到的请求参数出现乱码;2) 客户端接收到的响应内容显示为乱码。这主要是由于字符编码不一致导致的。HTTP协议默认使用ASCII编码,而中文字符通常需要UTF-8或GBK等编码来...

    提交数据到服务器中文乱码处理

    当涉及到将中文数据提交到服务器时,由于编码格式不匹配或者处理不当,可能会导致接收方接收到的数据显示为乱码。要解决这个问题,我们需要理解字符编码的基本原理,并采取相应的策略来确保数据在传输过程中的完整性...

    乱码处理操作类

    在IT行业中,乱码问题是一个常见的困扰,尤其是在处理多语言环境或者进行数据传输时。"乱码处理操作类"指的是为了正确显示或处理文本而设计的特定代码类,通常用于解决Java SSH(Spring、Struts、Hibernate)框架下...

    Java中文乱码浅析及解决方案

    Java 中文乱码问题是一个常见的编程困扰,尤其对于处理中文字符的Java程序而言。这个问题通常源于字符编码...通过细心配置和适当地指定编码,我们可以有效地避免乱码问题,确保程序在各种环境中都能正确处理中文字符。

    c#汉字乱码处理

    在C#编程中,处理汉字乱码问题是一个常见的需求,尤其是在读取或写入文本文件时。当在C#控制台应用中遇到汉字输出乱码的情况,这通常是因为编码不匹配所导致的。编码是字符集与二进制数据之间的转换规则,不同的系统...

    中文乱码处理问题总结

    - **原因分析**:默认情况下,Tomcat等服务器对POST请求的数据采用ISO-8859-1编码读取,而GET请求则依赖于客户端浏览器的编码设置。 - **解决方案**: - 对于POST请求,可以在接收请求参数前通过`request.set...

    处理pdfmarker中文乱码及内存溢出的处理

    1. **优化数据处理**:如果你的PDF生成涉及大量数据,尝试分批处理,而不是一次性加载所有数据。这样可以减少内存峰值。 2. **避免循环引用**:检查代码中是否存在循环引用,这可能导致垃圾回收器无法释放内存。...

    乱码解决 乱码解决 乱码解决 乱码解决 乱码解决

    乱码通常指的是字符显示不正确或无法识别,这可能由于编码格式不匹配、文件损坏、程序设置不当等原因引起。下面将详细讨论乱码产生的原因、解决方案以及如何预防。 一、乱码产生的原因 1. **编码格式不一致**:...

    maven-javadoc-plugin 中文 注释 API 解决乱码 pom xml

    在默认情况下,`maven-javadoc-plugin`插件在生成Javadoc文档时采用的是ISO-8859-1编码格式,这种编码方式无法正确解析中文字符,从而导致中文乱码现象。 ##### 2.2 解决方案 - **POM文件配置** 在`pom.xml`文件...

    java 中文乱码 处理

    这种方式可以在应用程序入口处就处理好所有请求的编码问题,避免后续处理过程中的乱码问题。 示例Filter配置代码: ```java public class EncodingFilter implements Filter { private String encoding; @...

    java URL中文参数乱码处理

    js 中乱码处理法方式 encodeURIComponent(encodeURIComponent(customerAddress)) decodeURIComponent(customerName) js到java encodeURI(url) String qijuType= new String(request.getParameter( (...

Global site tag (gtag.js) - Google Analytics