就出現亂碼問題
在這記錄一下
架構是 a.asp 透過 jQuery.ajax 呼叫 b.asp
a.asp
<html>
<head>
<meta HTTP-EQUIV="Content Type" CONTENT="text/html; charset=big5">
<script src="http://codeorigin.jquery.com/jquery-1.10.2.min.js"></script>
<script>
$(function(){
$("#btnSend").on("click",function(){
$.ajax({
async:false,
type:"POST",
data:{name : $("#tInput").val()},
dataType:"text",
url:"b.asp",
success:function(msg){$("#sMessage").text(msg);},
error:function(xhr,status,thrown){alert(thrown);}
});
});
});
</script>
</head>
<body>
<input type="text" id="tInput">
<input type="button" id="btnSend" value="Send"><br>
<span id="sMessage"></span>
</body>
</html>
<head>
<meta HTTP-EQUIV="Content Type" CONTENT="text/html; charset=big5">
<script src="http://codeorigin.jquery.com/jquery-1.10.2.min.js"></script>
<script>
$(function(){
$("#btnSend").on("click",function(){
$.ajax({
async:false,
type:"POST",
data:{name : $("#tInput").val()},
dataType:"text",
url:"b.asp",
success:function(msg){$("#sMessage").text(msg);},
error:function(xhr,status,thrown){alert(thrown);}
});
});
});
</script>
</head>
<body>
<input type="text" id="tInput">
<input type="button" id="btnSend" value="Send"><br>
<span id="sMessage"></span>
</body>
</html>
b.asp
<%=request.form("name") & " 您好~" %>
在 tInput 中輸入 "某甲"
結果 span 中顯示 "?�甲 �z�n~" 的亂碼
查了一堆資料
才知道原來 jQuery.ajax 預設會將 data 以 utf-8 方式編碼後送出
(contentType 預設為 "application/x-www-form-urlencoded; charset=UTF-8"
詳見 : jQuery)
所以只要在 b.asp 加入一行 <%session.codepage=65001%>
即可解決亂碼問題
<%session.codepage=65001%>
<%=request.form("name") & " 您好~" %>
<%=request.form("name") & " 您好~" %>
關於 session.codepage 的詳細說明請見 : 藍色小舖 (#3老頑童大大的說明)
沒有留言:
張貼留言