iT邦幫忙

1

HTML傳遞'中文'參數,使用EL讀取會出現亂碼

hello.html的表單(Form)傳遞參數(txtName) ->
hello.jsp使用EL(Expression Language)讀取傳來的中文名稱,會出現亂碼,程式如下:

hello.html

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	</head>
	<form action="hello.jsp" method="POST">
		<p>
			姓名:<input type="text" name="txtName" size="20"> <br>
			職稱:<input type="text" name="txtWork" size="20">
			<br>
			<input type="submit" value="傳送">
			<input type="reset" value="重設">
		</p>
	</form>
</html>

hello.jsp:

<%@page contentType="text/html" %>
<%@page pageEncoding="UTF-8" %>
<html>
	<head><title>JSP Page</title></head>
	<body>
		${'Hello'}
		${param.txtName}
		${'歡迎使用JSP動態網頁!!'}
		${'目前在'}
		${param.txtWork}
		${'任職.'}
	</body>
</html>

不知道各位前輩有什麼辨法可以幫忙解決這個問題,小弟感激萬分~~

看更多先前的討論...收起先前的討論...
dragonH iT邦大師 1 級 ‧ 2019-08-15 17:14:19 檢舉
可以用
```
```
把你整個 code 包起來就正常了

我是指不能 show html code 的部分
小魚 iT邦大師 1 級 ‧ 2019-08-15 17:28:44 檢舉
IT邦編輯器修好了,
你可以用兩個```把code包起來,
重新再修改一次.
ccutmis iT邦高手 9 級 ‧ 2019-08-15 17:54:51 檢舉
請問是不是用記事本(Notepad.exe)編寫程式的?
是的話要注意文件編碼要存成unicode不要存成ANSI的
存成ANSI的話如果是處理unicode中文有機會變成亂碼
參考:
http://dnowba.blogspot.com/2012/07/ansiunicodeutf-8utf-16bom.html
或是改用別的純文字編輯器 如 Notepad++ ,Atom 等,免費又好用
O口O iT邦新手 5 級 ‧ 2019-08-15 21:31:10 檢舉
OK,我改好了~
再麻煩各位看一下!
O口O iT邦新手 5 級 ‧ 2019-08-15 21:41:04 檢舉
自己找到的其中一個解法:
在使用EL之前,先加入下面這段Script.
```
<%
request.setCharacterEncoding("UTF-8");
%>
```
不知道大家平常會怎麼解決這問題呢...請不吝告知,謝謝

1 個回答

3
dragonH
iT邦大師 1 級 ‧ 2019-08-15 21:38:37
最佳解答

實測

補上

<%request.setCharacterEncoding("UTF-8");%>

就可以正常顯示了

https://ithelp.ithome.com.tw/upload/images/20190815/20117259Hmp2HcPIor.png

https://ithelp.ithome.com.tw/upload/images/20190815/20117259oO46tX0BCw.png

hello.jsp

<%@page contentType="text/html" %>
<%@page pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<html>
	<head><title>JSP Page</title></head>
	<body>
		${'Hello'}
		${param.txtName}
		${'歡迎使用JSP動態網頁!!'}
		${'目前在'}
		${param.txtWork}
		${'任職.'}
	</body>
</html>
O口O iT邦新手 5 級 ‧ 2019-08-15 21:42:16 檢舉

非常感謝您的認真回答^^/

dragonH iT邦大師 1 級 ‧ 2019-08-15 21:43:27 檢舉

/images/emoticon/emoticon82.gif

我要發表回答

立即登入回答