【问题标题】:how to avoid encoding problems using ajax-json and php-postrgesql如何使用 ajax-json 和 php-postgresql 避免编码问题
【发布时间】:2011-04-06 07:16:44
【问题描述】:

我在使用 json 和 ajax 时遇到了编码问题。 chrome 和 ie 在 jsonifying、firefox 和 safari 返回那些 utf-8 转义的变音符号(如 ¼Ã)时将变音符号编码为 un​​icode。

提供所有相同编码的最佳位置在哪里? js / php-get 或将它们写入数据库。

我认为下一个麻烦是,当我从 db 重新加载 utf-8 编码的内容,并将它们写入浏览器,然后将它们重写到 db 时,再次通过 ajax-request 得到真正的混乱?

我可以避免混乱吗?我可以简单地处理编码吗? 请。帮助:-)

非常重要的是还要提供安全性

【问题讨论】:

  • 从您的问题中不清楚您在做什么以及出了什么问题。也许一些 sn-ps 会有所帮助。
  • 我什至没有说出了什么问题;-)。问题是,浏览器 jsonify 机器会为相同的输入返回具有不同字符的字符串,问题是:如何处理,最佳实践。我认为代码不会使问题变得更容易,但可以坚持我的代码并针对我的特殊情况解决问题 - 问题是我正在寻找一种更可重用的解决方案。
  • 您可以在 php.ini 中设置 UTF-8 编码,如果您使用的是 Apache2,您可以使用指令 AddDefaultCharset 和 UTF-8 as

标签: php ajax json postgresql encoding


【解决方案1】:

你必须将everything设置为UTF-8,这意味着:

数据库排序

表格排序

字段排序

您的编码软件(例如 notepad++)加密。

【讨论】:

  • Collation 在这里并不是特别重要,你当然不会在 notepad++ 中设置encryption
【解决方案2】:

遇到了类似的问题。也许您实际上是在以错误的方式解释编码,客户端。尝试在查询之前设置前端编码。

<?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...
?>

我是新手,但它可能会有所帮助。如果您已经受到数据库注入的保护,也不会影响安全性。

干杯

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-09
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多