㈠ jsp欏甸潰鎬庝箞鑾峰彇杈撳叆鐨勪腑鏂
涓夌嶆柟娉曪細A 鎺ュ彈鍙傛暟鏃惰繘琛岀紪鐮佽漿鎹String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8")錛 榪欐牱鐨勮瘽錛屾瘡涓涓鍙傛暟閮藉繀欏昏繖鏍瘋繘琛岃漿鐮併傚緢楹葷儲銆備絾紜瀹炲彲浠ユ嬁鍒版眽瀛椼侭 鍦ㄨ鋒眰欏甸潰涓婂紑濮嬪勶紝鎵ц岃鋒眰鐨勭紪鐮佷唬鐮侊紝 request.setCharacterEncoding("UTF-8")錛屾妸鎻愪氦鍐呭圭殑瀛楃﹂泦璁句負UTF錛8銆傝繖鏍風殑璇濓紝鎺ュ彈姝ゅ弬鏁扮殑欏甸潰灝變笉蹇呭湪杞鐮佷簡銆傜洿鎺ヤ嬌鐢⊿tring str = request.getParameter("something")錛涘嵆鍙寰楀埌奼夊瓧鍙傛暟銆備絾姣忛〉閮介渶瑕佹墽琛岃繖鍙ヨ瘽銆傝繖涓鏂規硶涔熷氨瀵筽ost鎻愪氦鐨勬湁鏁堟灉錛屽逛簬get鎻愪氦鍜屼笂浼犳枃浠舵椂鐨別nctype="multipart/form-data"鏄鏃犳晥鐨勩傜◢鍚庝笅闈㈠崟鐙瀵硅繖涓涓や釜鐨勪貢鐮佹儏鍐靛啀榪涜岃存槑銆侰 涓轟簡閬垮厤姣忛〉閮借佸啓request.setCharacterEncoding("UTF-8")錛屽緩璁浣跨敤榪囨護鍣ㄥ規墍鏈塲sp榪涜岀紪鐮佸勭悊銆
㈡ jsp頁面獲取中文亂碼怎麼解決方法
1、在jsp頁中加入一條語句:
<%@ page contentType="text/html;charset=gb2312" %>中文顯示就正常了。
2、對於從網頁中的文本框通過String parameter = request.getParameter(「parameter」);方式獲得的字元串,均是8859_1的編碼,
如果想把它顯示在網頁上就必須得用parameter = new String(parameter.getBytes(「8859_1」),」gb2312」)進行轉換,windows和linux這兩種系統都是一樣的。
有一個簡單方法,就是在 getParameter() 方法獲取參數之前,使用request.setCharacterEncoding("GB2312");,將提交的信息轉化為 GB2312 編碼。
3、但是對於將數據寫入資料庫的問題,採取的方式就不同了:
windows下,必須要採用該字元串轉換再插入資料庫,而linux下就不需要,而是直接把8859_1編碼的字元插入。
如果從資料庫中讀出的數據,對於windows因為在插入時已經做了轉換,所以讀出時已經是gb2312的,當把它顯示在網頁上時,不需要做編碼轉換,而 linux上的mysql中的數據是8859_1的所以要做編碼的轉換。
4、 如果你給某個字元串變數賦予一個中文字元串的值,那麼在你取出他時,在網頁上的顯示是不需要做字元轉換的,
但是如果你要在linux下做字元的比較,則還需要把字元做parameter = new String(parameter.getBytes(「gb2312」),」8859_1」)的轉換。
5、長江電力網站解決中文問題的方法是:
1)在catalina.sh文件中的相關位置添加下面一行
-Dfile.encoding=GBK \
2)在每個jsp文件的最前面添加下面兩行
<%@ page contentType="text/html; charset=GBK" %>
<%request.setCharacterEncoding("GBK");%>
㈢ jsp如何實現中英文切換
有 我寫個例子: 有個表 編號 姓名 性別 這個表的這些文件重一個叫zh_CN.properties的文件中配置 在src新建一個zh_CN.properties文件 裡面的內容為: id=編號 name=姓名 sex=性別 在src建立一個en_US.properties文件 裡面的內容為: id=no name=your name sex=your sex 然後用解析java代碼 如果有異常請你自己處理 我不處理異常了 public class Location{ public static Properties getLocalLang(String lan){ String filename = "/"+lan+".properties"; InputSream inSteam = this.getResourceAsStream(filename); Properties pro = new Properties(); pro.load(inStream); return pro; } } servlet 調用: doPost Properties pro = Location.getLocalLang(「zh_CN」); request.getSession().setAttribute("pro"); 頁面 <td>pro.getProperty("id")</td> <td>pro.getProperty("name")</td> <td>pro.getProperty("sex")</td> 明白了 不明白請和我們的團隊 小小的窩聯系
㈣ JSP <a href="">中傳遞中文的問題
你好啊 ,你學jsp是吧!
你可能還不知道jsp在在傳遞中文時候會出現亂碼
所以說你的圖片路徑在傳遞後的路徑系統識別不出來了
所以你要麼改成英文的,要麼解決中文亂碼的問題
怎麼解決呢?
這有篇文章,你看看,我試過,可以成功
關於JSP中文亂碼
JSP文件中亂碼現象經常遇到,那如何處理就是我們不可避免的話題,那麼該如何解決呢,下面我針對不同的情況,給出幾種處理方式:
1) JSP頁面中文亂碼,這種情況比較好處理,在頁面的page指令中加上如下一項就行
<%@ page contentType=」text/html;charset=UTF-8」 %>
2) JSP頁面採用表單提交時,提交的數據中包含中文,並且提交方式為post這時我們獲取表單數據後,展示到其它頁面時會出現亂碼,解決方案是在獲取請求中的參數前,先設置請求的字元集。
如下代碼: request.setCharacterEncoding(「UTF-8」) ;
3) 還是表單提交數據,但是提交方式為默認的get方式,這時即使我們設置了請求字元集,但取出來還是亂碼,這時需要如下的轉換方式,我把轉換方式用一個編碼轉換類來實現了。
/*
* 定義一個轉換字元集的工具類CharSetTool
*
* 定義一個方法,用來轉換
*/
public class CharSetTool
{
/*
* 方法toUTF8()
* 參數: @inStr 傳入要轉換的字元串
*/
public static String toUTF8(String inStr)
{
String rtStr="";
if(inStr!=null)
{
try
{
rtStr=new String(inStr.getBytes("ISO-8859-1"),"UTF-8");
}
catch (UnsupportedEncodingException e)
{
//列印錯誤信息
System.out.println(e.getMessage());
}
}
return rtStr;
}
}
4) URL中文參數亂碼處理,
比如:超鏈接方式
<%
String str="我是中國人";
%>
<a href="next?str=<%=str%>">我是鏈接,單擊可以提交參數</a>
註:next 為 Servlet的URL Pattern
那在將中文作為參數值傳遞時,首先要把中文字元串進行編碼轉換,轉換成URL格式
操作如下:
<%
String str="我是中國人";
//使用URLEncoder.encode方法
str = URLEncoder.encode(str,"UTF-8");
%>
<a href="next?str=<%=str%>">我是鏈接,單擊可以提交參數</a>
綜合以上幾種比較常見的JSP中文亂碼的處理方式,不管是何種提交方式,我們都可以使用JSP中的過濾器(Filter)來過濾字元編碼,下面我就給出一個我自己定義的 「通用」的字集編碼過濾器。
/**
* 處理中文字元集的過濾器
*
* @author Administrator
*
*/
public class EncodingFilter implements Filter
{
//過濾器銷毀的方法
public void destroy()
{
}
public void doFilter(ServletRequest request, ServletResponse response,FilterChain chan)
throws IOException, ServletException
{
//設置響應模式
response.setContentType("text/html;charset=UTF-8");
//判斷客戶端的提交方式
if(((HttpServletRequest)request).getMethod().equalsIgnoreCase("POST"))
{
//POST方式提交
//設置請求字元集
request.setCharacterEncoding("UTF-8");
}
else
{
//處理GET
//獲取所有的提交參數
Enumeration names = request.getParameterNames();
//遍歷
while(names.hasMoreElements())
{
//參數名
String name = (String)names.nextElement();
//因為不知道參數是多值還是單值
String values[] = request.getParameterValues(name);
//循環處理字元集轉換
for(int i=0;i<values.length;i++)
{
values[i] = toUTF8(values[i]);
}
}
}
//調用過濾器鏈中的下一個過濾器
chan.doFilter(request, response);
}
//轉換方法(內部私有方法)
private String toUTF8(String str)
{
String rt = null;
try {
if(str!=null)
{
//轉換新字元集
rt = new String(str.getBytes("ISO-8859-1"),"UTF-8");
}
} catch (UnsupportedEncodingException e) {
// TODO 自動生成 catch 塊
e.printStackTrace();
}
return rt;
}
//初始化方法
public void init(FilterConfig config) throws ServletException
{
}
}
然後在web.xml文件中進行相關的配置 :
<!-- 配置過濾器 -->
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>ocean.mvc.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern> <!-- 匹配所有的請求 -->
</filter-mapping>
㈤ jsp頁面的jquery ui datepicker控制項出現中文亂碼,有沒有人出現過這種問題幫忙解決一下,謝謝!
是文件的編碼,右鍵文件屬性改成你需要的。
可能你項目是GBK但JS文件是UTF-8
㈥ JSP: 哪裡JSP的中文API參考手冊下載
jsp沒有中文的API,所以還是看英文的^_^
㈦ jsp中處理中文亂碼的解決方案有哪些
JSP 中文亂碼處理解決方案
初學JSP,尤其是環境(GlassFish默認UTF-8,則不存在此類問題),經常會因為中文漢字字元集設置問題導致中文亂碼,本文就這一問題提出解決方案,解決中文亂碼問題,供各位參考,我採用的方案是統一字元集至UTF-8,同時避免GB2312所帶來的中文字元集不夠用的隱患,需注意的地方有三點,默認情況下是英文字元集。
1、Tomcat 的 server.xml 文件,設置伺服器埠工作方式
2、Servlet 和 JavaBean 對字元串字元集處理的統一
3、JSP頁面的字元集統一
完成這三點統一,中文想亂碼都難,如果使用MySQL的話,數據表也需要做UTF-8統一。
修改Tomcat的server.xml文件,該文件位於 tomcat/conf,紅色部分為添加部分,也就是當前使用的HTTP埠的連接方式的設置。
找到Connector 標簽,使 Tomcat 伺服器以UTF-8模式進行工作,從底層對亂碼進行處理,修改如下:
<Connector URIEncoding="utf-8" port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
其它應用伺服器例如GlassFish默認支持utf-8,伺服器本身無需設置,只須代碼上注意即可。
運行代碼內設置如下:
JavaBean 和 Servlet 內需要處理中文的地方之前,或者所有函數最前端加上
request.setCharacterEncoding ("UTF-8");
response.setCharacterEncoding ("UTF-8");
避免在 JavaBean 和 Servlet 內出現漢字亂碼。
JSP代碼中的 JAVA 字元編碼設置,在頁面上對亂碼進行處理。
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
紅色為制定JSP處理字元採用UTF-8編碼處理方式。
<%request.setCharacterEncoding ("UTF-8");%>
JSP內JAVA代碼設定接收參數為UTF-8編碼
JSP 內 HTML 頭的編碼設置,頁面處理以UTF-8,避免顯示亂碼。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Note Page</title>
</head>
<body>
……
……
紅色部分UTF-8制定HTML頁面使用的編碼方式
<form action=index.jsp method="post"><h3>Please Input Your Name:</h3>
<input type="text" size="30" name="中文名字" value="" >
<input type=submit value="提交">
</form>
接收代碼如下:
<%
// 通過二進制傳遞的參數,因為UTF-8的設置,無須轉換,直接中文操作,而不會出現亂碼。
String temp1 = request.getParameter ("yourname");
……
%>
採用get方式略有不同,若只採用以上設定,遇中文參數,因編碼不同,會導致部分文字信息丟失,所以在提交前務必進行編碼,這里用到兩個函數java.net.URLDecoder.decode 和java.net.URLDecoder.encode,分別是編碼和解碼。
<a href="
<%=request.getContextPath()%>/index.jsp?傳遞的參數名=
<%=java.net.URLEncoder.encode (傳遞的漢字變數,"UTF-8")%>">
<%=超鏈接熱點顯示內容%>
</a>
作為參數傳遞的中文,由 java.net.URLEncoder.encode函數將要發送的變數解析為16進制數字編碼,進行URL傳遞,接收代碼如下:
<%String str = request.getParameter ("傳遞的參數名");%>
由此,獲得參數後的 str 內將是正確的中文信息,完全避免了亂碼的顯示。
可用 java.net.URLDecoder.decode 函數
例如
<%
String str1 = java.net.URLDecoder.decode(request.getParameter("傳遞的參數名"),"UTF-8");
%>
完畢將完美解決中文字元參數亂碼問題。