導航:首頁 > 操作系統 > linuxjsp亂碼

linuxjsp亂碼

發布時間:2022-12-12 04:13:26

① 如何使linuxjava支持中文

,大家在安裝過程中或者使用過程中所遇到的中文亂碼問題是當前的JVM還不支持中文,想要讓你linux系統下的java程序支持中文其實很簡單,只要講系統的中字體文件鏈接或者拷貝到JVM中的fonts中然後安裝字體就可以了.
我們系統的中字體存貯在/usr/share/fonts中,該文件夾下存儲了系統中存儲的各種字體,比如/usr/share/fonts/truetype/wqy/wqy-zenhei.ttf.我們需要的做的就是將系統中的某個字體文件拷貝或者鏈接到JVM中的font中.
我的JVM安裝路徑為/usr/lib/jvm/java-6-sun,java中使用的字體文件存儲於/usr/lib/jvm/java-6-sun/jre/lib/fonts
在該文件夾下創建文件夾sudo mkdir fallback
然後建立鏈接sudo ln -s /usr/share/fonts/truetype/wqy/wqy-zenhei.ttf
/usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback/
這步完成之後你會在fallback文件夾下看到一個指向WQY字體的鏈接.
切入fallback文件夾 執行操作:
sudo mkfontdir
sudo mkfontscale
這樣你的JVM就支持中文字體了.

② 如何解決linux下面resin運行JSP出現亂碼

但是一到伺服器上面一運行發現還是亂碼測試發現跑
*.html是不會出現亂碼的。現在來看一下如果運行
*.jsp哦就出現亂碼了我的頁面:<%@ page language="java"
import="java.util.*" pageEncoding="utf-8"%<metahttp-equiv="Content-Type" content="text/html;
charset=utf-8" /
這樣設置之後再運行發現還是出現中文亂碼了。奇怪了~解決Linux下面運行JSP出現中文亂碼的方案:1.
設置好這幾個地方
<%@ page contentType="text/html; charset=utf-8"%
<%@ page language="java"2.
import="java.util.*,com.util.IPUtil"
pageEncoding="utf-8"%JSP頁面的頭部設置好META標簽的編碼風格
<Meta http-equiv="Content-Type" Content="text/html; Charset= utf-8"
<Meta http-equiv="Content-Language" Content="utf-8"
//-------------------------瀏覽器編碼-----------------<html
<head<meta http-equiv="Content-Type"
content="text/html; charset= utf-8"</head</html//控制住JSP頁面的編碼形式!
<%@ page pageEncoding=" utf-8"%//JSP頁面編碼:
<%@ page contentType="text/html";charset= utf-8%//JSP
頁面輸出編碼:
<% request.setCharacterEncoding("utf-8");%//JSP頁面輸入編碼:
//------------------------MySql編碼-------------------
Connection connect = java.sql.DriverManager.getConnection(
"jdbc:mysql://localhost/mydb?user=登陸帳號&password=你的密碼&useUnicode=true&characterEncoding= utf-8");說明:1、
控制瀏覽器的輸出顯示編碼是:

③ Linux下從JSP問號傳值到控制器中出現中文亂碼

jsp傳值要設置 輸入流編碼的。具體怎麼設置你到網上找~。 好像是head裡面設置

④ 發布到Linux伺服器出現頁面傳入後台的漢字亂碼

首先我是用idea開發的,我的需求是在將java項目部署到伺服器上,去調取數據,在用?id=北京 這種傳參時,linux伺服器出現亂碼,最後試了多種方法,僅供參考
頁面pageEncoding = "utf-8" charset="utf-8"

(1)server.xml 配置埠號出配置 URIEncoding = "UTF-8" 這是針對瀏覽器的編碼
還有個參數 useBodyEncodingForURI = "true"; 暫時沒搞清是什麼
(2)web.xml 中的字元集過濾器 是針對springMVC的字元集
(3) url 中 ?拼接的參數 不會經過字元集攔截器 重定向中可以使用ModelAndView 的對象,
ModelAndView mv = new ModelAndView("redirect:/index.do");
mv.addObject("id",id);
(4)自定義攔截器
①寫一個實現了 HandlerInterceptorAdpter 的攔截器 並且手動實現 preHandle() return true;
② springMVC配置文件中配置
<mvc:interceptors>
<bean id="idInterceptor" class="app.plant.interceptor.IdInterceptor"></bean>
</mvc:interceptors>
③指定字元集
String id = request.getParameter("id");
if(id != null){
id = new String(id.getBytes("iso-8859-1"),"utf-8");
request.setAttribute("id",id);
}
return true;

⑤ 如何解決Java中的中文亂碼問題

對於Java,由於默認的編碼方式是UNICODE,所以用中文也易出問題,常見的解決是:

String s2 = new String(s1.getBytes(「ISO-8859-1」),」GBK」);

1、utf8解決JSP中文亂碼問題
一般說來在每個頁面的開始處,加入:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
%>

◆charset=UTF-8的作用是指定JSP向客戶端輸出的編碼方式為「UTF-8」;
◆pageEncoding="UTF-8",為了讓JSP引擎能正確地解碼含有中文字元的JSP頁面,這在LINUX中很有效;
◆request.setCharacterEncoding("UTF-8");是對請求進行了中文編碼。

有時,這樣仍不能解決問題,還需要這樣處理一下:

String msg = request.getParameter("message");
String str=new String(msg.getBytes("ISO-8859-1"),"UTF-8");
out.println(st);

⑥ websphere8.5部署的web項目,在windows下沒有問題,在linux系統下出現從jsp頁面到action出現亂碼問題

WebSphere中國社區正在搞WAS專家答疑,可以去那看看

⑦ 分頁標簽中傳入的參數亂碼,怎麼解決

原理剖析:
伺服器是tomcat默認使用的編碼是IOS-8859-1.頁面使用的編碼格式是GBK,那麼在提交的時候GBK編碼的數據經過伺服器(ISO-8859-1)編譯之後變成了亂碼.這個時候我們需要把接收到的數據,先使用ISO-8859-1解析回來得到位元組數據,再使用頁面的編碼格式GBK去這里這個位元組數據,得到正確的中文.

所以需要先將得到 "字元 "(不管是什麼)都先用位元組數組表示,且使用ISO-8859-1進行翻譯,得到一個在ISO-8859-1編碼環境下的位元組數組.例如:AB表示成[64,65].然後再用GBK編碼這個數組,並翻譯成一個字元串.

那麼我們可以得到一個編碼轉換的過程
假設:GBK碼( "你 ")-> URLencode後變成-> (%3F%2F)-> Tomcat自動替你轉一次ISO-8859-1-> 得到( 23 43 68 23 42 68 每一個符號表示為ISO-8859-1中的一個編碼)-> 接收頁面---> 再轉一次為ISO-8859-1的Byte數組[23,43,68,23,42,68]---> 用GBK再轉為可讀的文字---> (%3F%2F "----> 轉為( "你 ")

解決辦法:
utf8解決JSP中文亂碼問題
一般說來在每個頁面的開始處,加入:

以下是引用片段:
<%@ page language= "java " contentType= "text ml; charset=UTF-8 "
pageEncoding= "UTF-8 "%>
<%
request.setCharacterEncoding( "UTF-8 ");
%>
charset=UTF-8 的作用是指定JSP向客戶端輸出的編碼方式為「UTF-8」
pageEncoding= "UTF-8 " 為了讓JSP引擎能正確地解碼含有中文字元的JSP頁面,這在LINUX中很有效
request.setCharacterEncoding( "UTF-8 "); 是對請求進行了中文編碼
有時,這樣仍不能解決問題,還需要這樣處理一下:
String msg = request.getParameter( "message ");
String str=new String(msg.getBytes( "ISO-8859-1 "), "UTF-8 ");
out.println(st);

⑧ jsp高手請進,我用jspsmartupload上傳文件,但我表單獲得的中文是亂碼(UTF-8)的,如何解決

以下,是中文亂碼的各種解決方法,要記住了,很有用,肯定有一種方法能幫你解決的。希望能幫到你。

URIENcoding 設成GBK或GB2312
2. 表單中或傳遞字元串:本來輸入的漢字是正常的,但是提交後再顯示出來是亂碼,因為提交的一般是 ISO8859編碼,所以顯示的時候要轉成GB2312編碼:
String S=new String(rs.getString("news").getBytes("gb2312"),"ISO8859_1");
//rs.getString("news")為待轉換的字元串
然後使用S字元串的值就可以了
3. 有的伺服器端的語言環境如果設成簡體中文的也可以解決此類問題
4. 插入資料庫中的字元是亂碼
看看資料庫中支持的是何種編碼方式,用類似2中的方式作一下轉換即可。
5. 總之,用jsp開發,碰到亂碼,你得分析是讀的時候發生亂碼,還是寫的時候發生亂碼,用2中的轉換,基本就能解決問題,有些時候寫的時候做一次轉換,例如:
String S=new String(rs.getString("news").getBytes("gb2312"),"ISO8859_1");
//讀的時候在轉換回來
String S=new String(rs.getString("news").getBytes("ISO8859_1"),"GB2312");
或者把ISO8859-1和GB2312 的位置換一下,自己多試試,就能找到解決問題的辦法。

將亂碼問題分為三類JSP頁面顯示中文亂碼;表單提交亂碼;資料庫應用亂碼
1) JSP頁面內輸出中文時出現亂碼
解決方案在JSP文件中使用page命令指定響應結果的MIME類型,如<%@ page language="java" contentType="text/html;charset=gb2312" %>
2)表單提交亂碼
表單提交時(post和Get方法),使用request.getParameter方法得到亂碼,這是因為tomcat處理提交的參數時默認的是iso-8859-1,表單提交get和post處理亂碼問題不同,下面分別說明。
(1)POST處理
對post提交的表單通過編寫一個過濾器的方法來解決,過濾器在用戶提交的數據被處理之前被調用,可以在這里改變參數的編碼方式,過濾器的代碼如下:
package cn.gov.beijingit.util;

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;

public class SetCharacterEncodingFilter implements Filter {

/**
* The default character encoding to set for requests that pass through this
* filter.
*/
protected String encoding = null;

/**
* The filter configuration object we are associated with. If this value is
* null, this filter instance is not currently configured.
*/
protected FilterConfig filterConfig = null;

/**
* Should a character encoding specified by the client be ignored?
*/
protected boolean ignore = true;

// --------------------------------------------------------- Public Methods

/**
* Take this filter out of service.
*/
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);

}

/**
* Place this filter into service.
*
* @param filterConfig
* The filter configuration object
*/
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);

}

}
web.xml文件加入過濾器
<filter>
<filter-name>Encoding</filter-name>
<filter-class>
cn.gov.beijingit.util.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gbk</param-value>
<!--gbk或者gb2312或者utf-8-->
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Encoding</filter-name>
<servlet-name>/*</servlet-name>
</filter-mapping>
* 注意filter元素要放在所有web.xml元素之前。
(2) Get方法的處理
tomcat對post和get的處理方法不一樣,所以過濾器不能解決get的亂碼問題,它需要在其他地方設置。
打開<tomcat_home>\conf目錄下server.xml文件,找到對8080埠進行服務的Connector組件的設置部分,給這個組件添加一個屬性:URIEncoding="GBK"。修改後的Connector設置為:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" />
* 注意修改後重新啟動tomcat才能起作用。
3)資料庫應用的亂碼,本文還是以mysql為例
(1)修改配置文件<mysql_home>\my.init
將default-character-set=latin1修改為default-character-set=gbk
(2) 對接受的中文字元重新編碼,例
String name=requset.getParameter("name");
name = new String(name.getBytes("gbk"),"iso8859-1");
4)tomcat5.x的include頁面亂碼
為了能讓tomcat5.x能像tomcat4那樣處理include頁面,需要修改項目web-info/web.xml文件,把默認的字元集設置成gbk/gb2312就可以了,如:
<jsp-config>
<jsp-property-group>
<description>Special property group for JSP Configuration JSP example.</description>
<display-name>JSPConfiguration</display-name>

⑨ JDK Linux中文亂碼問題

按jhuangjiahua的方法java應用程序的亂碼問題可以解決。<br /><br /><br />標題: <span style="font-weight: bold;">再提 Ubuntu/Debian 下 JAVA 中文顯示</span>
常見的字元轉換方法

將Form 中 的 值 傳 送 到 數 據 庫 中 再 取 出 來 後 全 變 成 了「?」。Form用POST提交數據,代碼中使用了語句:String st=new(request.getParameter(「name」).getBytes(「ISO8859_1」)), 而且也聲明了charset=gb2312。

要處理Form中傳遞的中文參數,應該在JSP中加入下面的代碼,另外定義一個專門解決這個問題的getStr類,然後對接收到的參數進行轉換:
String keyword1=request.getParameter(「keyword1」);
keyword1=getStr(keyword1);
這樣就可以解決問題了,代碼如下:
<%@ page contentType=「text/html;charset=gb2312」%>
<%!
public String getStr(String str){
try{String temp_p=str;
byte[] temp_t=temp_p.getBytes(「ISO8859-1」);
String temp=new String(temp_t);
return temp;
}
catch(Exception e){ }
return 「NULL」;
}
%>
<%--http://www.cndes.com測試--%>
<% String keyword=「創聯網路技術中心歡迎您的到來」;
String keyword1=request.getParameter(「keyword1」);
keyword1=getStr(keyword1);
out.print(keyword);
out.print(keyword1);
%>

2. JDBC Driver的字元轉換

目前大多數JDBC Driver採用本地編碼格式來傳輸中文字元,例如中文字元「0x4175」會被轉成「0x41」和「0x75」進行傳輸。因此需要對JDBC Driver返回的字元以及要發給JDBC Driver的字元進行轉換。當用JDBC Driver向資料庫中插入數據時,需要先將Unicode轉成Native code; 當 JDBC Driver從資料庫中查詢數據時,則需要將Native code轉換成Unicode。下面給出了這兩種轉換的實現:
String native2Unicode(String s) {
if (s == null || s.length() == 0) {
return null;
}
byte[] buffer = new byte[s.length()];
for (int i = 0; i s.length(); i++) { if (s.charAt(i)>= 0x100) {
c = s.charAt(i);
byte []buf = (「」+c).getBytes();
buffer[j++] = (char)buf[0];
buffer[j++] = (char)buf[1];
}
else {buffer[j++] = s.ch
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=377091

閱讀全文

與linuxjsp亂碼相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:755
蘋果郵件無法連接伺服器地址 瀏覽:958
phpffmpeg轉碼 瀏覽:669
長沙好玩的解壓項目 瀏覽:140
專屬學情分析報告是什麼app 瀏覽:562
php工程部署 瀏覽:831
android全屏透明 瀏覽:730
阿里雲伺服器已開通怎麼辦 瀏覽:801
光遇為什麼登錄時伺服器已滿 瀏覽:300
PDF分析 瀏覽:482
h3c光纖全工半全工設置命令 瀏覽:139
公司法pdf下載 瀏覽:379
linuxmarkdown 瀏覽:349
華為手機怎麼多選文件夾 瀏覽:681
如何取消命令方塊指令 瀏覽:347
風翼app為什麼進不去了 瀏覽:776
im4java壓縮圖片 瀏覽:360
數據查詢網站源碼 瀏覽:148
伊克塞爾文檔怎麼進行加密 瀏覽:888
app轉賬是什麼 瀏覽:161