簡體   English   中英

我的javascript變量中的特殊字符一直顯示為 ,我該如何防止這種情況?

[英]Special characters in my javascript variables keep showing up as �, how do i prevent this?

我有一個javascript腳本,它調用一個php頁面來提供帶有建議的ajax表單。 這些建議由php頁面返回正常,但出於某種原因,當我將javascript對象請求的responsetext設置為我的HTML頁面中的元素時,所有特殊字符(即á或ã)都顯示為此問號。 是否必須在請求的響應文本上運行函數II以確保正確讀取這些函數?

謝謝。

如果您沒有將HTML頁面作為UTF-8提供,瀏覽器將猜測編碼,通常是單字節Windows代碼頁,具體取決於用戶的語言環境。

但這對AJAX來說不會發生。 使用XMLHttpRequest ,除非您在Content-Type: ...; charset=明確說明編碼Content-Type: ...; charset= Content-Type: ...; charset=參數,瀏覽器會將其視為UTF-8。 這意味着如果您實際上正在提供Windows代碼頁1252(西歐)內容,您將獲得無效的UTF-8序列和隨之而來的問號。

您不希望使用非UTF-8編碼! 確保在整個應用程序中使用UTF-8。 使用Content-Type: text/html; charset=utf-8您的所有頁面提供服務Content-Type: text/html; charset=utf-8 Content-Type: text/html; charset=utf-8 ,將數據存儲在UTF-8表中,使用mysql_set_charset()選擇UTF-8等。

無論如何,請考慮使用JSON傳遞AJAX響應。 函數json_encode()將創建一個JSON字符串,該字符串對非ASCII字符使用JavaScript轉義序列,這避免了編碼不匹配的任何問題。 此外,這比添加原始HTML更容易擴展以添加功能。

我會嘗試在你的PHP腳本中將所有內容編碼為html實體。

在將結果返回到javascript之前,可以通過執行此類操作輕松測試:

$results = htmlentities($htmlstring);

還有你可能會嘗試的htmlspecialchars功能。

更多相關信息:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM