中文乱码的总结

一、servlet

1)将接收的内容(参数)进行编码

request.setCharacterEncodeing(String charset);

2)将要输出的转发的内容进行编码

response.setContextType("text/html;charset=utf-8");

二、jsp

<%@page language=“java” import="java.util.*"  pageEncoding="utf-8"%>

三、Js

1.传参页面

Javascript代码:

<script type=”text/javascript”>// <![CDATA[

function send(){

var url = "test01.html";

var userName = $("#userName").html();

window.open(encodeURI(url + "?userName=" + userName)); }

// ]]>

</script>

2. 接收参数页面:test02.html

<script>

var urlinfo = window.location.href;//獲取url

var userName = urlinfo.split(“?”)[1].split(“=”)[1];//拆分url得到”=”後面的參數

$(“#userName”).html(decodeURI(userName));

</script>

二:如何获取Url“?”后,“=”的参数值:

A.首先用window.location.href获取到全部url值。

B.用split截取“?”后的全部

C.split(“?”)后面的[1]内数字,默认从0开始计算

escape,unescape,encodeURI,encodeURIComponent区别:

1.传递参数时候使用,encodeURIComponent否则url中很容易被”#”,”?”,”&”等        敏感符号隔断。

2.url跳转时候使用,编码用encodeURI,解码用decodeURI。

    3.escape() 只是为0-255以外 ASCII字符 做转换工作,转换成的 %u**** 这样的        码,    如果要用更多的字符如 UTF-8字符库 就一定要用 encodeURIComponent()     或    encodeURI() 转换才可以成 %nn%nn 这的码才可以,其它情况下escape,    encodeURI,en    codeURIComponent编码结果相同,所以为了全球的统一化进程,在        用 encodeURICom  
 ponent() 或 encodeURI() 代替 escape() 使用吧!

四、struts

    设置常量:<contanst name=“struts.i18n.ecording”value="utf-8">

五、spring

在您通过表单向服务器提交数据时,一个经典的问题就是中文乱码问题。虽然我们所有    的 JSP 文件和页面编码格式都采用 UTF-8,但这个问题还是会出现。解决的办法很        简单,我们只需要在 web.xml 中配置一个 Spring 的编码转换过滤器就可以了.

使用在非struts2框架开发:

org.springframework.web.filter.CharacterEncodingFilter

<filter>

<filter-name>characterEncodingFilter</filter-name>

<filter-class>

org.springframework.web.filter.CharacterEncodingFilter

</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param>

<init-param>

<param-name>forceEncoding</param-name>

<param-value>true</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>characterEncodingFilter</filter-name>

<url-pattern>/*</url-pattern>

    </filter-mapping>

六、html

表单中的数据会按照当前页面来进行编码。

<meta http-equiv="content-type" content="text/html;charset=utf-8;">

模拟消息头content-type,让浏览器以utf-8编码打开页面。

确保页面将表单用指定的字符编码进行编码。

七、cookie

cookie的值只能是ASCII字符,如果是中文,需要将中文转换成ASCII字符形式。

可以使用URLEncoder.encode()方法和URLDecoder.decode()方法来进行这种转换。

时间: 2024-07-31 11:48:47

中文乱码的总结的相关文章

centos6.7下安装mysql5.6.22同时解决中文乱码问题

1.下载 http://dev.mysql.com/downloads/mysql/ 或者使用wget下载: wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.22-1.el6.i686.rpm-bundle.tar 2.安装 2.1.  检测是否已经安装了mysql rpm -qa | grep mysql 如果已经安装了,将其卸载,如: rpm -e --nodeps  mysql-libs-5.1.71-1.el6.x8

XShell连接CentOS 7.2显示中文乱码问题的解决方法

背景 使用U盘往Windows主机.Linux主机传文件还是经常的事,但有时候文件名有中文, 传到Linux机器会有乱码,选择起来也很麻烦,最近刚好遇到,写下解决方法. 环境 Linux [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [[email protected]-base ~]# echo $LANG en_US.UTF-8 [[email protected]-ba

[oracle]解决centos 7下oracle的中文乱码问题

首先在形成中文乱码的原因是由于字符集不统一导致的,不同的字符集在转换的过程中必然要出现乱码,当然不排除可以转换.所以要解决中文乱码问题,思路是将输入.存储.显示等流程中涉及到字符集都统一为一种,对于oracle首先必须满足的先决条件是要服务端和客户段的字符集统一,若还不能解决问题,同时还要将系统的字符集与之统一,甚至导入或输入数据所使用的字符集统一. 看了网上的一些资料后,都说修改服务器的字符集风险比较大,确实,测试开发用还好说,假若是上线项目的服务器,那修改服务器字符集所带来的后果是不堪的,废

Oracle数据库中文乱码问题

最近碰到Oracle乱码问题,刚开始甚是头疼,以前在合肥出差的时候,这种问题也碰到过,当时直接抛给了“乌压压一片”(一个搞数据的同事儿),这次没办法躲过,只好硬着头皮上.虽然我这次碰到的是Oracle乱码问题中的一个,但是我决定将这个乱码问题整理清楚(不整清楚,就觉得身边有个定时炸弹,怕下次整数据库的时候会突然又爆炸). 解决这个问题的关键在于理解字符集的概念,所以在正文开始之前,有必要先提一下字符集的相关知识!(这部分知识,对于解决j2ee中文参数传递过程中出现的乱码,也非常具有参考意义) 一

linux下birt 图表中文乱码问题

birtChart 在linux下中文乱码的问题是Java虚拟机找不到中文字库字体文件造成的. 步骤: 1.把.bash_profile中的export LANG=zh_CN.GB2312修改为: export LANG=zh_CN.GB18030.因为gb2312不支持一些特殊的汉字. 2.在在生成的chart图表的XML Source里修改字体:把SansSerif修改为SimSun. 3.找到一个能在linux下使用的中文字体,可以是Windows 7下的c:\windows\fonts\

source insight3.5中文乱码解决方案

source insight3.5中文乱码,网上看别人说改变宽字体.宋体等方法都不起效.根本原因是,source insight 3.5 不支持Unicode编码,所以导致中文的乱码,将文件转为gb2312编码即可正常显示. 转码命令: iconv -c  -f utf-8 -t gb2312  utf8FileName  >>  newGb2321FileName

JSP学习笔记(三):解决JSP中文乱码问题

JSP开发应用过程中中文乱码是个比较常见的问题,其根源是:Web容器默认的字符编码格式是ISO-8859-1. 一.ISO-8859-1是不支持中文的.假如在保存JSP页面源码时遇到该错误,只要把JSP命令标签中的键值对"pageEncoding"的值ISO-8859-1改成"utf-8"(或UTF-8),当然是建议改成这样的编码格式,也可以改成GBK.这样就可以顺利保存源代码了. 二.get和post提交表单时遇到中文乱码问题的解决方案: (1)post提交:po

【中文乱码】jsp页面传值到后台中文乱码情况.

作为一名程序员,在项目中偶尔会遇到jsp传到后台出现中文乱码而不知所措.下面将讲解出现中文乱码的几种情况. 一.jsp页面没有设置编码格式, 二,后台没有在web.xml中字符编码过滤器, 三,在ajax提交的时候用get提交, 四,数据库连接的时候也可以试着加上字符编码, 五,所有的前台和后台字符编码必须一致.

zabbix中文乱码问题解决方法(Zabbix 2.2.3)

我把zabbix安装完成后,调整为中文界面,出现乱码. 原因:因为没有中文字体,没有设置显示字体为中文. 解决方法(网络整理收集): 1.获取一个字体文件,上传至zabbixServer的web目录fonts文件夹(/data/www/zabbix/fonts), Windows → 控制面板 → 字体 命名为小写字母 2.修改配置文件,/www/zabbix/include/defines.inc.php //define('ZBX_FONT_NAME', 'DejaVuSans'); def

客户端cmd打开mysql,执行插入中文报错或插入中文乱码解决方案

最近在制作一个安装包,需要安装的时候执行mysql脚本儿,做了一个批处理,但是发现总是执行到 插入中文的时候报错,或者插入中文是乱码. 网上查了好多资料,说是把编码改成GBK什么的,终究还是不成功. 最后经过多次测试,现把解决方案分享给大家. 第一步:打开mysql中的配置文件,my.ini,看一看配置文件中 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 看是不是这样配置的.因为utf8 是国际通用的,