<script type="text/javascript" charset="UTF-8">
似乎並沒有做的工作:(JavaScript和UTF-8編碼
我會從頂部開始,因爲我在尋找solutiona可能不是一個我所要求的。
所以我在一個簡單的CRM上,它的一個'簡單'功能是註冊一個客戶的請求,該請求還沒有在Customers
數據庫中 - 如果CRM無法找到一個名稱與所提供的名稱匹配的客戶,然後新客戶註冊,這個非常受歡迎的功能導致很多Customers
實體的所有公稱名稱屬性都是空的
後來用戶確實添加了聯繫人屬性,但工作流程非常緩慢且無聊。爲了加快速度,我編寫了一個python函數,它根據local yellow pages的名稱查找客戶,解析HTML並將其轉換爲dict()。這需要相當長的一段時間,所以我把它放在單獨的查詢頁面上,根據請求這是紅色的JavaScript。
查詢頁面呈現字典作爲像這樣的字符串: [{'name': '"AG \xc4\x80bolti\xc5\x86a b\xc5\xabvuz\xc5\x86\xc4\x93mums", SIA', 'phone': '67244222'}]
通知字面UTF-8編碼
$.get('/zl?name=AG SIA ĀBOLTIŅA BŪVUZŅĒMUMS', function(data){...
檢索它上面看起來同樣的方式。將檢索到的dataString轉換爲Object result = eval(data)[0]
。因此,現在$('#zl').html(result.name)
將"AG ÄboltiÅa bÅ«vuzÅÄmums", SIA
置爲非「BOLTIŅABŪVUZŅĒMUMS」,因爲它應該是。
我在頁眉中有<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
,腳本以<script type="text/javascript" charset="UTF-8">
開頭,但沒有任何幫助。
所以問題:
- 如何設置JS輸出的編碼正確?有沒有一些技巧方法,如
string.toProperUTF-8()
? - 有沒有辦法
.decode(UTF-8)
Python字典不會導致服務器錯誤? - 有沒有問題少的方法來做到這一點?
我認爲'Content-Type' HTTP頭比腳本標籤的'charset'屬性更相關。 – Bergi 2013-03-26 15:02:04
爲什麼不使用JSON呢? JSON是一個清晰的定義標準,包括可接受的編碼,使得實現者可以輕鬆地獲得該部分*正確*。 Python有一個'json'模塊,使您可以輕鬆地使用Unicode數據生成正確的JSON。 – 2013-03-26 15:03:34
@MartijnPieters:看來OP已經使用JSON,只有他無法正確地獲得JSON字符串的編碼。 – Bergi 2013-03-26 15:10:10