【问题标题】:Global languages in MySQL with PHPMySQL 中的全局语言和 PHP
【发布时间】:2013-11-05 23:50:38
【问题描述】:

我们开始网站的目的是只使用英语并使用英语对 MySQL 进行所有插入/删除。并在写入数据库时​​使用 PHP 转义字符串。

现在的情况是我们的网站有很多中国/德国/俄罗斯用户,我们在将数据写入 MySQL 时遇到问题 - PHP 能够将数据写入数据库,但它会进行一些内部转换,例如替换几个字符到不同的东西(例如 Plötzlich --> Plq$tzlich)。

但是,如果我去 phpMyAdmin 并复制粘贴中文或任何其他语言字符串并插入它,请按原样写入。所以怀疑是PHP在写入数据库之前进行了转换。

我们正在努力使其适用于所有语言,但这是我们第一次在(MySQL 和 PHP)中处理全球语言。

如果有任何专家可以分享一些非常好的和高度赞赏的信息。

  1. 我们有 MYSQL InnoDB 数据库,里面有数据,我们应该如何转换以支持全球语言?
  2. 我们使用 PHP 将记录写入 MySQL 并使用转义字符串(数据)然后将其写入数据库。我们认为转义不支持全局语言,它会进行一些转换。如何处理这个或我们应该使用什么?
  3. 此转换是否会影响数据库中的现有数据?

如果我们能得到一些专家的帮助,我们将非常感激。

【问题讨论】:

  • 你使用的是mysqli还是PDO?
  • 嗨,Speccode 它是 MySQLi
  • 您能多谈谈您是如何使用 PHP 转义数据的吗?如果您使用的是 MySQLi,则应该使用不需要显式转义的参数化查询,也不应该这样做。至于数据损坏,你的数据库是什么字符集,你的网页是什么字符集?
  • UTF-8 all the way through 的可能副本
  • @Pekka웃 提供的链接有很多信息可以帮助您。另外...我不知道您如何转义数据,但您应该通过准备好的语句来做到这一点:pl1.php.net/manual/en/mysqli.prepare.php

标签: php mysql utf-8 escaping globalization


【解决方案1】:

我会确保您的应用程序全部采用 UTF-8,包括所有数据库表。听起来有些部分不是 UTF-8。

你让谁逃避你的文字? 也许像
http://www.w3schools.com/php/func_string_htmlentities.asp
有帮助?所有字符都转义为 html 实体。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    相关资源
    最近更新 更多