文档说明:
接了个韩国项目,预计整体使用UTF-8编码,从页面到数据库,应该能全部处理。(对应的韩文编码是euc-kr,应该相当于我们的gbk)
使用原来处理日文的时候的经验,发现很多郁闷的问题,中文日文ok,韩文就是乱码。经过2天的重新梳理,问题解决,记录下流程,免得下次再痛苦一次。
1. 页面使用utf-8编码,显示韩文没用问题
技术点:
method="post" 这个是重点,如果不能正常传递,看是不是 这个原因,记得不写应该是post,但测试后发现这是个很坑爹的问题。
2. 配置参数传递之间编码一致
技术点:(ssh)
a. web.xml 最前面配置
b. 如果没用使用ssh,那么配置
对应的java文件 Encoding.java
3. 业务逻辑层
直接打印出来的是???这样的编码,想用iso-8858-1转成字节,再用utf-8转成字符打印韩文失败
或许编码理解错误,回头再确认。
http://flysnow.iteye.com/blog/702798 这篇文章深入分析了struts2获得编码的过程
http://www.regexlab.com/zh/encoding.htm 这篇很经典,说清了来龙去脉
4. db层,使用的mysql数据库
技术点:
a. 完全使用utf-8的结构,库,表,字段utf8_general_ci。 没什么好纠结的。如果有不一致,有
可能正常,有可能不正常,反正出现的问题能让n个小时候后觉得可能自己不太正常
b. ssh 数据库配置文件,或许做hibernate,或许在spring的applicationContext中,反正你在哪里配置了
数据库连接,那么加上
jdbc:mysql://localhost:3306/xxxx?useUnicode=true&characterEncoding=UTF-8"
c. 如果使用了jndi方式,在tomcat或其他web服务器中配置了数据源,同样记得在url后面加上字符集配置
5. 本文编辑器
看到的是方块的韩文
EditPlus
1. 单击Tools => Preferences,弹出Preferences窗口。
2. 在General => Fonts下设置Font为Gulim,单击OK。
UltraEdit
1. 查看 -> 设置显示字体 => 设置字体,弹出字体窗口。
2. 在字体对话框中设置字体为Gulim,脚本为韩文。
3. 单击文件 => 转换 => UNICODE/UTF-8到UTF-8(Unicode编辑),设置编码为Unicode。

本文详细记录了一个处理韩国项目的UTF-8编码流程,包括页面编码、过滤器配置、业务逻辑层处理及数据库配置。通过设置页面charset、过滤器确保请求参数编码一致,调整数据库连接URL以支持UTF-8,解决韩文乱码问题。
1561

被折叠的 条评论
为什么被折叠?



