jive中文問題解決方案
jive中文解決方案
1、將所有的jsp頁面中的charset由ISO-8859-1改為GBK。
2、在web.xml中加入如下的filter:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>jsp</servlet-name>
</filter-mapping>
該類的原始檔見附件。
3、在中文環境下重新編譯src下面的所有的java檔案。
上面三步完成後,基本上就可以輸入和顯示中文了。
4、在根目錄下的header.jsp中加入<%@ page contentType="text/html;charset=GBK" %>
5、將所有頁面中的<%@ include file="header.jsp" %>改為<jsp:include page="header.jsp" />
這兩步解決標頭檔案的中文問題。
6、修改com.jdon.picture.Upload.java,將36行中的MultipartRequest(request,uploaddir,size * 1024)改為MultipartRequest(request,uploaddir,size * 1024,"GBK")
7、修改upload.jsp,在String icon=request.getParameter(request.getParameter("picname"))後面增加下面這一行
icon=(String)session.getAttribute("picname")+icon.substring(icon.lastIndexOf('.'));
在<input type="hidden" name="picname" value="<%=picname%>">後面增加下面這一行
<%session.setAttribute("picname",picname);%>
這兩步解決圖片上傳時的中文問題。
以上在windows2000+jdk1.4+tomcat4.18+oracle8下測試透過。
下面是SetCharacterEncodingFilter.java的原始碼
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;
import javax.servlet.UnavailableException;
public class SetCharacterEncodingFilter implements javax.servlet.Filter {
protected String encoding = "GBK";
protected FilterConfig filterConfig = null;
public void setFilterConfig(FilterConfig config) {
this.filterConfig = config;
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
// Select and set (if needed) the character encoding to be used
String encoding = selectEncoding(request);
if (encoding != null) {
request.setCharacterEncoding(encoding);
System.out.println("encoding:"+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");
System.out.println("³õʼ»¯encoding...");
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
1、將所有的jsp頁面中的charset由ISO-8859-1改為GBK。
2、在web.xml中加入如下的filter:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>jsp</servlet-name>
</filter-mapping>
該類的原始檔見附件。
3、在中文環境下重新編譯src下面的所有的java檔案。
上面三步完成後,基本上就可以輸入和顯示中文了。
4、在根目錄下的header.jsp中加入<%@ page contentType="text/html;charset=GBK" %>
5、將所有頁面中的<%@ include file="header.jsp" %>改為<jsp:include page="header.jsp" />
這兩步解決標頭檔案的中文問題。
6、修改com.jdon.picture.Upload.java,將36行中的MultipartRequest(request,uploaddir,size * 1024)改為MultipartRequest(request,uploaddir,size * 1024,"GBK")
7、修改upload.jsp,在String icon=request.getParameter(request.getParameter("picname"))後面增加下面這一行
icon=(String)session.getAttribute("picname")+icon.substring(icon.lastIndexOf('.'));
在<input type="hidden" name="picname" value="<%=picname%>">後面增加下面這一行
<%session.setAttribute("picname",picname);%>
這兩步解決圖片上傳時的中文問題。
以上在windows2000+jdk1.4+tomcat4.18+oracle8下測試透過。
下面是SetCharacterEncodingFilter.java的原始碼
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;
import javax.servlet.UnavailableException;
public class SetCharacterEncodingFilter implements javax.servlet.Filter {
protected String encoding = "GBK";
protected FilterConfig filterConfig = null;
public void setFilterConfig(FilterConfig config) {
this.filterConfig = config;
}
public FilterConfig getFilterConfig() {
return filterConfig;
}
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
// Select and set (if needed) the character encoding to be used
String encoding = selectEncoding(request);
if (encoding != null) {
request.setCharacterEncoding(encoding);
System.out.println("encoding:"+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");
System.out.println("³õʼ»¯encoding...");
}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
相關文章
- jive中MySQL中文問題解決一法MySql
- JIVE在WINDOWS下的中文顯示問題的解決Windows
- python 中文亂碼問題解決方案Python
- matplotlib中文報錯問題及解決方案
- oracle 輸出中文亂碼問題解決方案Oracle
- JAVA常見中文問題的解決方案(轉)Java
- [原創]Gerrit中文亂碼問題解決方案分享
- JSP中文亂碼問題終極解決方案JS
- eclipse 中文亂碼問題解決方案彙總Eclipse
- JSP顯示中文問題的解決方案(轉)JS
- JSP中文亂碼問題終極解決方案(上)JS
- SecureCRT 下MySQL中文亂碼問題終極解決方案SecurecrtMySql
- jive 漢字問題終極解決辦法
- MySQL 中文 like 問題解決MySql
- 解決中文亂碼問題
- JDK1.2關於JDBC中文問題的解決方案 (轉)JDKJDBC
- jive在win系統下的中文問題?
- 跨域問題,解決方案 – CORS方案跨域CORS
- 跨域問題,解決方案 - CORS方案跨域CORS
- 木馬問題解決方案
- MySql中文亂碼問題解決MySql
- Jmeter 解決中文亂碼問題JMeter
- 解決localdb中文智慧的問題
- Java 解決中文亂碼問題Java
- RDSSQLSERVER解決中文亂碼問題SQLServer
- 解決MySQL中文亂碼問題MySql
- Tomcat下中文問題解決Tomcat
- 暫時解決的中文問題
- 跨域問題及解決方案跨域
- PHPAjax跨域問題解決方案PHP跨域
- 常見問題及解決方案
- spring security 問題解決方案Spring
- HA腦裂問題解決方案
- 解決plsql中中文亂碼問題SQL
- springmvc 解決中文亂碼問題SpringMVC
- js解決url中文亂碼問題JS
- 使用Kettle抽取資料時,出現中文亂碼問題解決方案
- git version 2.5.0.windows.1中文亂碼問題解決方案GitWindows