我有一個簡單的asp.net web應用程序使用YUI來處理Ajax請求。應用程序從文本框中讀取文本並向服務器發送AJAX請求。以下是代碼有問題通過AJAX請求發送®字符
<body>
<form id="form1" runat="server">
<div>
<input id="txt" name="txt" type="text" value="[Enter some value]" />
<input id="btn" type="button" value="button" />
</div>
<div id="out"></div>
</form>
</body>
以下是初始化Ajax請求
YAHOO.util.Event.onDOMReady(function() {
YAHOO.util.Event.addListener("btn", "click", function(evt) {
var url = "Server.aspx?type=test&txt=" + document.getElementById("txt").value;
var btn = document.getElementById("out");
var cObj = YAHOO.util.Connect.asyncRequest('GET', url, {
success: function(o) {
btn.innerHTML += "<div>" + o.responseText + " = " + o.responseText.charCodeAt(0) + "</div>";
},
failure: function(o) {
confirm("Its failure");
},
cache: false
});
});
});
我在申請做的是接受用戶輸入的字符,將它保存到數據庫,並將其寫入Ajax響應客戶端腳本。系統不支持Unicode(數據庫)。
現在我的問題是,當在文本框中輸入「Registered」®字符(0174)併發送到服務器時,我得到了#65533,這不是用戶在文本框中輸入的內容。此外,®此字符不是Unicode字符,那麼爲什麼會出現這種行爲。
你使用什麼字符編碼?你注意到它不是任何Unicode編碼,但是你沒有指定你使用的*。 – Piskvor
您是指發送的Ajax請求的內容編碼或內容類型? –
可能涉及許多不同的編碼(設置),並且它們全都可能很重要,例如,數據庫編碼,傳遞給客戶端的頁面編碼,在服務器端工作時編碼。順便說一句,你的問題實際上僅限於「註冊」字符,還是有其他字符也顯示這個問題? – codeling