注:开发IDE是eclilpse,本地开发环境是windows,测试环境是linux
项目之前是一位兄弟开发的,项目编码为GBK编码,半路做其它项目,我接接手,一次也没布署过测试环境。
我在本地一切开发好之后,测试没有问题,布到linux上就有乱码问题。
找了半天终于找到原因,测试服务器linux上是UTF-8编码,使用locale命令查看:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
无奈,只得把项目中所有带GBK的地方全部改成UTF-8,这包括:
web.xml:
<filter>
<filter-name>Set Character Encoding</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>allowScriptTagRemoting</param-name >
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
所有的jsp页面:
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
这些还罢了,最麻烦的是所有的类文件都要编译为UTF-8编码的,具体操作为:
在eclipse中选中一个JAVA文件,右击 -> properties -> Text file encoding 修改为UTF-8,
可这样一修改,JAVA文件中所有的中文字符全部变成了乱码,解决的办法为:
先把JAVA文件修改为GBK编码,Ctrl+A全部选择,再把JAVA文件修改为UTF-8编码,在类文件中Ctrl+A全选,删掉,再Ctrl+V粘贴刚才复制的内容。
好,大功告成!
可这只是修改了一个JAVA文件!什么??!!!! 对,你工程里有多少个JAVA文件都要这样修改,否则就会有以下后果
1、所有JAVA类中的中文注释都不可用(这个在某种情况下可以舍弃)2
2、所有JAVA类中中文消息(存储在request中供在JSP中显示的)全部为乱码,这样JSP中不管如何设置,始终是乱码!!
于是,一项浩大的编码改造工程开始了。。。。。
分享到:
相关推荐
在IT领域,编码之间的转换是一项基础且重要的任务,特别是在处理多语言、跨平台的数据时。本文将深入探讨编码转换的概念,以及如何利用工具进行转换,以"编码之间的转换"为主题,结合标签"源码"和"工具",我们将讨论...
在Oracle数据库环境中,遇到字符集问题,如表结构的comment或其他说明出现乱码,通常是由于数据库字符集与操作系统或应用程序的字符集不匹配所导致的。Oracle 12C修改编码集的步骤是为了确保数据正确显示,避免乱码...
如果数据库已经创建,且需要修改字符集,这是一项复杂且需要谨慎操作的任务,因为可能会涉及数据迁移和验证。可以使用`ALTER DATABASE`语句来更改字符集,但在此之前,建议进行充分的备份,并确保所有应用和服务已...
在Java Server Pages (JSP) 开发过程中,中文字符的正确显示和处理是一项常见的挑战。这主要源于不同系统、编码标准以及网络传输之间的兼容性问题。本文将从JSP中文处理的基础概念出发,深入探讨各种常见场景下的...
这个版本是由choiceyqj分享的,他已经对它进行了配置优化,特别是解决了日志乱码的问题,这对于开发者来说是一项非常重要的改进。 在Java Web开发中,Tomcat作为应用服务器,负责解析HTTP请求并执行Servlet代码,...
这可能是为了确保跨平台兼容性和避免字符编码问题。在Java中,处理字符编码很重要,尤其是在国际化应用中。正确的编码设置可以确保中文等非ASCII字符正确显示,避免乱码问题。 在源码包中,"apache-tomcat-8.5.50-...
在IT行业中,源代码的编码格式是一个至关重要的问题,因为它直接影响到代码的可读性和兼容性。本主题聚焦于“跨平台源码转换为UTF-8格式”,这是一项旨在确保代码在不同操作系统和编辑器之间无缝协作的任务。UTF-8是...
开发者可能遇到的问题包括字符乱码、编码转换、正则表达式匹配特殊字符等,因此深入理解Unicode可以帮助解决这些问题。 标签“源码”意味着内容可能涉及到代码实现,可能讲解了如何在编程语言中处理Unicode字符,如...
这些Code Page与MS932、JapanEUC、Shift-JIS等Windows和UNIX平台下常见的日文编码存在兼容关系。 在实际操作中,配置Code Page时需要参考Informatica PowerCenter的版本兼容性表。配置手册将帮助用户了解如何设置和...
在Oracle数据库的日常管理和应用开发中,中文字符集的设置和管理是一项至关重要的工作。不当的字符集配置可能导致数据存储错误、查询结果异常或用户界面显示乱码等问题。本文将深入探讨Oracle中的中文字符集问题,...
在使用libiconv时,需确保正确设置输入和输出编码,避免因编码不匹配导致的乱码问题。同时,对于动态链接的程序,需要考虑运行时libiconv.dll的路径配置。 总结,libiconv 1.16为Windows开发者提供了一个强大的...
在Informix数据库系统中,字符集转换是一项非常重要的功能,特别是在多语言环境下。本文将详细介绍在Linux/Unix平台上如何设置并进行Informix字符集转换。 ### 一、字符集概念 在深入探讨Informix字符集转换之前,...
在IBM AIX操作系统上部署Websphere与ActiveMQ是一项复杂的工作,涉及到多个步骤和技术细节。以下是对这个过程的详尽解析: 首先,我们要了解环境背景: 1. Aix Version5:这是一个基于UNIX的操作系统,由IBM开发,...
在IT行业中,快速检索指定文件源码是一项至关重要的技能,特别是在大型项目中,代码库可能包含成千上万行代码。这个实例“快速检索指定文件”聚焦于如何高效地定位和分析源码,特别是涉及到Unicode编码转换的部分。...
常见的中文编码有GBK、UTF-8等,不兼容的编码可能导致乱码问题。在进行查找替换时,需确保程序或工具能识别和处理正确的编码格式。 5. **文件操作安全**:在批量操作中,为避免误操作导致数据丢失,应先备份重要...
在IT行业中,数据库的迁移是一项常见的任务,特别是在跨平台的环境中,如AIX(IBM的UNIX操作系统)和Windows。DB2,作为IBM的一款关系型数据库管理系统,广泛应用于各种系统。本文将详细介绍如何在AIX和Windows之间...
总结,Oracle客户端切换字符集是一项重要的工作,它涉及到数据的正确显示和处理。了解字符集的基本概念,熟悉如何在客户端进行配置,以及在实际操作中注意的事项,都是确保数据完整性和应用程序正常运行的关键。通过...
在打开文件时,需要提示用户选择正确的编码,避免乱码问题。 8. **事件处理**:记事本程序需要响应用户的键盘和鼠标操作,如点击菜单项、拖拽文件到窗口等。这涉及到事件驱动编程,可能用到的消息循环和消息处理...
6. **ID3标签的挑战**:不兼容问题、大小限制、编码格式不一致等是ID3标签使用过程中可能遇到的问题。 7. **解决ID3标签问题的方法**:当遇到错误的ID3标签时,可以通过手动修正、使用自动匹配服务或编写脚本来批量...
xMarkup能处理这两种编码的文件,确保了在不同编码环境下工作的兼容性,避免了乱码问题。 其次,跨平台特性使得xMarkup的适用范围更广。在Win-32平台上,它为Windows用户提供了一致的界面和操作体验;而在POSIX/...