`

unix解决乱码

阅读更多

JSP+MySQL+Tomcat+Apache乱码解决

 

乱码问题已历来已久,在开源环境下,乱码问题更是令程序员措手不及。本人在Unix(Freebsd)下的一次乱码经历可谓经典,故撰以此文以滋效尤!

 

  我将本次所遇乱码归为三类:

 

  1.页面字符乱码

 

  2.记录显示乱码

 

  3.request传递乱码

 

  以下将对上述三类乱码进行解析:

 

一.页面字符乱码:

 

  1.大小写不一致:

 

org.apache.jasper.JasperException: /top.jsp(1,1) Page directive: illegal to have multiple occurrences of contentType with different values (old: text/html;charset=gb2312, new: text/html;charset=GB2312)

 

  2.间隔不一致:

 

org.apache.jasper.JasperException: /top.jsp(1,1) Page directive: illegal to have multiple occurrences of contentType with different values (old: text/html; charset=GB2312, new: text/html;charset=GB2312)

 

*解决方案:

 

首先,在Apache中增加AddDefaultCharset GB2312或AddDefaultCharset GBK

 

其次,统一使用页面编码定义,如:,OK,果然是乱。那么,现在有两种解决方法。

 

*解决方案:

 

  1.加上这条语句:request.setCharacterEncoding("gbk");

在一/两页上可行,但此法也非权益之计。

 

  2.注册SetCharacterEncodingFilter类:

 

  首先,编写SetCharacterEncodingFilter.java文件,代码如下:

 

package cn.com.jsp;

 

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.UnavailableException;

 

public class SetCharacterEncodingFilter implements Filter {

protected String encoding = null;

protected FilterConfig filterConfig = null;

protected boolean ignore = true;

 

public void destroy() {

this.encoding = null;

this.filterConfig = null;

}

 

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException,

ServletException {

 

// Conditionally select and set the character encoding to be used

if (ignore || (request.getCharacterEncoding() == null)) {

String encoding = selectEncoding(request);

if (encoding != null) {

request.setCharacterEncoding(encoding);

}

}

 

// Pass control on to the next filter

chain.doFilter(request, response);

 

}

 

public void init(FilterConfig filterConfig) throws ServletException {

 

this.filterConfig = filterConfig;

this.encoding = filterConfig.getInitParameter("encoding");

String value = filterConfig.getInitParameter("ignore");

if (value == null) {

this.ignore = true;

} else if (value.equalsIgnoreCase("true")) {

this.ignore = true;

} else if (value.equalsIgnoreCase("yes")) {

this.ignore = true;

} else {

this.ignore = false;

}

 

}

 

protected String selectEncoding(ServletRequest request) {

return (this.encoding);

}

 

}

 

  此文件为request过滤类,在全局编译前需进行注册。

 

  注册文件为:<!--wroo-->/WEB-INF/web.xml。

 

  在此文件中加入如下代码即可:

 

 

wwwroot

MySQL Test App

 

setCharacterEncodingFilter

setCharacterEncodingFilter

setCharacterEncodingFilter

cn.com.jsp.SetCharacterEncodingFilter

 

encoding

GBK

 

 

 

setCharacterEncodingFilter

/*

 

……

 

 

  OK,现在可以编译你的SetCharacterEncodingFilter.java文件啦!

 

  至此,乱码将与你格格不入!

分享到:
评论

相关推荐

    weblogic10在UNIX下部署,中文乱码问题的解决

    weblogic 10 在 UNIX 下部署, 中文乱码问题的解决

    java加密解密算法

    加密 解密 解决乱码 多环境windows unix linux等应用

    简体中文Telnet v1.01

    本,其在使用 SCO Unix 中的 vi 时输入中文有问题 。 问题的解决方法刚刚找到,但是还没来得及修改程 序。 问题(1):vi 中输入中文不能正常显示,而是输出xxx 形式的八进制字符串。解决方法:并不是本Telnet的毛 ...

    kiwi syslog server 9.5

    Kiwi Syslog Server安装教程: ...这些产品的安装与配置非常简单,提供功能丰富的解决方案来接收、记录、显示并转发各种网络设备(例如路由器、交换机、Unix 主机以及其它启用 syslog 的设备)的 syslog 消息。

    通过命令行导入到mysql数据库时出现乱码的解决方法

    解决方案: 打开sql文件,在SQL文件第一行加入如下内容 /*!40101 SET NAMES utf8 */; 将SQL文件另存为UTF-8 NO BOM格式 通过ftp上传sql文件,放在根目录下就可以了 进入你的cPanel, 看到cron jobs 这个图标,点击...

    Windows Gvim 全局配置 乱码问题

    今天在win7下使用gvim打开以前在ubuntu下用vim写的文档时,显示的中文全是乱码,这可不行! google了一下,知道了在console下输入: set encoding=utf-8 解决问题。 但是每打开一个这样的文件都要设置,gvim不是...

    Expect 教程中文

    Expect恰恰填补了其中的一些裂痕,解决了在Unix环境中长期存在着的一些 问题。  Expect使用Tcl作为语言核心。不仅如此,不管程序是交互和还是非交互的,Expect都能运用。这是一个小语言和Unix 的其他工具配合...

    UNIX/LINUX下C语言中文短信UCS2编码和解码函数源码

    发送中文短信,会用到UCS2编码,很多网友反应中文发送和接收乱码,这个烦恼可以解决了。 注意:要在系统配置里增加 LANG=zh_CN.GB18030 export LANG 语言配置不对,这个函数会出错的,另外,例子有点问题,换一个...

    libtermcap-devel-2.0.8-46.1.x86_64.rpm

    rlwrap解决Linux及Unix下sqlplus中上下左右回退无法使用乱码情况,安装依赖包

    Xftp7一种灵活且轻量级的SFFT/FTP客户端

    Xftp 7是一种灵活且轻量级的SFFT/FTP客户端,用于需要安全地通过网络传输文件的用户。使用Xftp7软件能让文件传输被...重要的是可以自定义上传文件的编码 可以有效解决 由WINDOWS平台访问LINUX平台FTP中文件名乱码的问题

    winscp 429

    使用 WinSCP 可以连接到一台提供 SFTP (SSH File Transfer Protocol)或 SCP (Secure Copy Protocol)服务的 SSH (Secure Shell)服务器,通常是 UNIX 服务器。SFTP 包含于 SSH-2 包中,SCP 在 SSH-1 包中。两种协议都...

    R-Studio 数据恢复

    为恢复FAT12/16/32、NTFS、NTFS5(由 Windows 2000/XP/2003/Vista创建或更新)、Ext2FS/Ext3FS(LINUX 文件系统)以及 UFS1/UFS2(FreeBSD/OpenBSD/NetBSD文件系统)分区的文件提供了最为广泛的数据恢复解决方案。...

    远程访问工具集合 - XShell 5、XFtp 5

    Xshell 是目前最好的linux远程登录工具,速度流畅且完美解决了中文乱码。 Xshell 是一个强大的安全终端模拟软件,支持SSH1、SSH2以及Miscrosoft Windows 的 TELNET协议。 -----------------------------------------...

    Winscp中文版4.2.9

    使用 WinSCP 可以连接到一台提供 SFTP (SSH File Transfer Protocol)或 SCP (Secure Copy Protocol)服务的 SSH (Secure Shell)服务器,通常是 UNIX 服务器。SFTP 包含于 SSH-2 包中,SCP 在 SSH-1 包中。两种协议都...

    淘客帝国5.24专业版发布(免费无限制,好用好使)

    优化部分模板详情里字体过大会乱码的问题。 优化伪静态规则分析,解决某些特殊后缀会解析失效的问题。 优化自动清理缓存功能,调整空间清理延迟。 (注意:)↓↓↓↓↓↓↓↓↓↓ 上传程序或者升级都必须使用2进制模式...

    微信Aud音频转换Amr

    AMR,然后保存为UNIX格式的Amr文件即可。 以上就是方法,如果懂技术的可以编写成软件或脚本,如果不会的,也可下载我提供的小软件,批量转换,谢谢各位对此帖的支持,谢谢!! 或者下载我做好的一个记事本文件,...

    SSH 开源图形化 SFTP 客户端 WinSCP 5.17.9.zip

    但WinSCP不支持编码选择,也就是说,你在Windows下使用WinSCP连接一个Linux机器,因为Linux和Windows的默认编码不同,因此是无法访问上面的中文文件或者文件夹的(将看到乱码)。一种解决方法就是在打开winscp时...

    ShopNC网上商城综合性多用户版 v2.7 build 20100901.rar

    ShopNC综合多用户商城系统是一个面向大型电子商务平台架设的解决方案。系统采用PHP MySQL构建,运营者可以轻松的在网络中构建一个商城交易平台,提供自由开店、在线交易、供求信息等多种服务。 可以广泛应用在综合...

    DSShop单店铺TP5框架B2C单用户开源商城源码 v2.1.1.zip

    DSShop商城系统是一套完善的B2C(单用户商城)解决方案。系统pc端后台使用国内优秀开源框架THinkPHP,基于PHP MySQL开发,采用B/S架构,wap端使用vue.js构造,依据6年电商经验打造出的一套开源的B2C电子商务系统。 ...

    淘客帝国v5.20破解版商业无限制稳定版

    淘客帝国v5.20破解版商业无限制稳定版 ...本程序后台全部功能完全本地化! 【安装方法】 1:下载最新淘客帝国系统安装包并解压缩 2:上传至网站根目录,或子目录 ...2:Linux/Unix 平台:Apache + PHP(V5.1以上)

Global site tag (gtag.js) - Google Analytics