【问题标题】:Problems with Cyrillic. Using AJAX, PHP and MySQL西里尔字母的问题。使用 AJAX、PHP 和 MySQL
【发布时间】:2015-09-05 10:21:52
【问题描述】:

我有一个带有此类参数的数据库:

character_set_client: utf8
character_set_connection: utf8
character_set_database: utf8
character_set_filesystem: binary
character_set_results:utf8
character_set_server: cp1251
character_set_system: utf8

我没有使用 JQuery。我使用 AJAX 将数据放入数据库。一切正常,直到我想从数据库中获取西里尔文数据。我在浏览器中看到的是 � 而不是西里尔符号。你能告诉我一个有问题的地方吗?谢谢。

【问题讨论】:

  • 问题可能出在您的 php 代码上。你如何连接到数据库?
  • 我添加了这些:header('Content-Type: text/html; charset=cp1251'); mysql_query("SET NAMES 'cp1251'"); mysql_query("SET CHARACTER SET 'cp1251'"); ...现在一切正常。
  • 很高兴知道这一点,但我建议您最终将数据库和代码转换为 utf8。 1 字节的国家编码现在已经过时了。

标签: php cyrillic


【解决方案1】:

我会尽力给你一个建议。一步一步检查一切,做任何事情之前不要忘记备份。

1) 将您的 character_set_server: cp1251 更改为 utf8。您可以在您的 mysql 配置文件 my.cnf 中执行此操作。当你改变它 - 你必须重新启动mysql。添加以下内容:

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

2) 查看您的数据库。里面的信息看起来不错吗?如果没有,请检查您如何保存数据。

3) 检查您的元数据。它应该是这样的:

<head>
  <meta charset="utf-8">
  <title>Your title</title>
</head>

4) 您可以通过 php 标头为您提供编码类型:

<?php
header('Content-Type: text/html; charset=utf-8');

此代码应出现在脚本中的任何输出之前。

5) 检查您的浏览器。有时我忘记将编码从手动更改为自动。或者您可以手动将其更改为 UTF-8。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    相关资源
    最近更新 更多