2010-08-31 42 views
2

我在使用json和ajax時遇到編碼問題。 鉻和ie編碼變音符爲unicode時,jsonifying,火狐和Safari瀏覽器返回utf-8像¼Ã逃脫變音符號。如何避免使用ajax-json和php-postrgesql編碼問題

哪裏是最好的地方給所有相同的編碼? js/php-get或將它們寫入數據庫。

我認爲接下來的麻煩是,當我從數據庫重新載入utf-8編碼的東西,並將它們寫入瀏覽器,然後通過ajax-request再次將它們重寫到數據庫時,獲得真正的混亂?

我可以避免chaous?我能以簡單的方式處理編碼嗎? 幫助:-)

非常重要的是還提供安全

+0

目前還不清楚你在做什麼,你的問題和錯誤。也許一些片段會有所幫助。 – Artefacto 2010-08-31 14:39:41

+0

我甚至沒有說出錯的地方;-)。問題在於,瀏覽器將機器回送給具有不同字符的字符串以用於相同的輸入,問題是:如何處理該問題,最佳實踐。 我認爲代碼不會使問題更容易,但可以堅持我的代碼,並解決我的特殊情況的問題 - 事情是我正在尋找一個更可重複使用的解決方案。 – helle 2010-08-31 14:56:02

+0

你可以在php.ini中設置UTF-8編碼,如果你使用的是Apache2,你可以使用帶UTF-8的指令AddDefaultCharset作爲 – 2010-10-27 16:12:32

回答

1

您必須一切設置爲UTF-8,這意味着:

數據庫歸類

表整理

場整理

您的編碼軟件(示例notepad ++)加密。

+0

,謝謝。實際上這就是所有的utf-8。 – helle 2010-08-31 14:37:02

+0

[整理](http://en.wikipedia.org/wiki/Collat​​ion)在這裏並不特別相關,你當然不會設置[加密](http://en.wikipedia.org/wiki/Encryption)在記事本++。 – Artefacto 2010-08-31 14:40:26

0

有類似的問題。也許你實際上正在用錯誤的方式來解釋編碼,在客戶端。嘗試在查詢之前設置前端編碼。

<?php 
$connection = pg_pconnect("dbname=data"); 
pg_set_client_encoding($connection, "encoding goes here"); //check enconding aletrnatives on PostgreSQL 
$result = pg_query($connection, "SELECT whatever FROM wherever"); 
//and so on... 
?> 

我是一個新手,但它可能有所幫助。不管怎樣,如果你已經防止數據庫注入,也不會影響安全性。

乾杯