三步解决Web开发中的中文乱码问题

相信很多人在Web开发中都遇到过中文乱码,我也曾为此痛苦不堪。下面结合我的经验谈一下简单的解决方法。

总的原则,页面文件保存时的编码、页面(浏览器)解释时用的编码、数据库编码这三种编码要一致 。下面以UTF-8为例:

第一步:

将所有页面(.html .php等)保存时的编码类型选为UTF-8,假设用的是EditPlus,选文件—>另存为,在弹出的对话框的最下面的编码选择中选择UTF-8。

第二步:

如果是html文件,请在head中加一条meta信息指定编码,例如:

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

如果是动态文件(.php .jsp等),请根据相应语法指定浏览器解释用的编码。

例如对于php加入如下头信息:

<?php header("Content-Type: text/html; charset=utf-8");?>

 对于jsp则如下指定:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>

 如果用了servlet,请在servlet中也指定编码,例如:

request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");

第三步:

确保数据库的表编码与存取数据时的编码为UTF-8,例如对于MySQL,在数据库建表时请指定编码:

CREATE TABLE xx
(
xx varchar(20) not null,
primary key(xx)
)TYPE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci

请特别注意建表语句最后的CHARACTER SET部分 ,就是指定数据表的编码需要的语句。

在存取数据时,也请注意指定编码,例如用php存取mysql表数据,请在存取前统一加上:

mysql_query("SET NAMES utf8"); 

OK,经过以上三步,应该说99%的中文乱码问题都解决了,在此补充一点,对于用get方法传送的中文参数(URL中带有的中文参数),也要注意编码的转换,在传输前先将中文参数编码,在接收后再将参数解码。例如在java中可以这样做:

//传送之前编码
query?name=<%=java.net.URLEncoder.encode(name,"utf-8")%>

//接收之后解码
String name = request.getParameter("name");
name = new String(name.getBytes("ISO8859_1"), "utf-8");

至此,我觉得99.9%的乱码问题应该解决了,反正我只碰见过这些问题,如果你还有问题,不妨和我交流:)

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值