2010-08-31 45 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... 
?> 

我是一个新手,但它可能有所帮助。不管怎样,如果你已经防止数据库注入,也不会影响安全性。

干杯