首页 > 数据库 > mysql教程 > MySQL存储数据时为什么出现问号而不是阿拉伯文本?

MySQL存储数据时为什么出现问号而不是阿拉伯文本?

Barbara Streisand
发布: 2024-12-10 14:19:11
原创
192 人浏览过

Why are Question Marks Appearing Instead of Arabic Text When Storing Data in MySQL?

在 MySQL 数据库中存储阿拉伯语数据

问题:

尝试在 MySQL 数据库中存储阿拉伯语文本时,出现问题出现标记(“???”)而不是预期的字符。

设计表的:

CREATE DATABASE mydb
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;

CREATE TABLE `categories` (...);
登录后复制

观察:

  • 数据库、表和列设置为使用 UTF-8 字符编码。
  • 数据没有正确插入,导致出现问题

解决方案:

要解决此问题,请确保遵循以下步骤:

  1. 验证角色设置:

    • 执行以下查询来检查数据库、表和列的字符集和排序规则设置:

      • 数据库:SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "schemaname";
      • 表:从 information_schema.TABLES T、information_schema.COLLATION_CHARACTER_SET_APPLICABILITY CCSA WHERE CCSA.collat​​ion_name = T.table_collat​​ion AND T.table_schema = "schemaname" AND T.table_name = 中选择 CCSA.character_set_name "tablename";
      • 列:从 information_schema.COLUMNS C 中选择字符集名称,其中 table_schema = "schemaname" AND table_name = "tablename" AND column_name = "columnname";
  2. 手动设置 UTF-8 设置(如果需要):

    • 如果设置未设置为UTF-8,请使用以下命令命令:

      • 数据库:ALTER DATABASE schemaname CHARACTER SET utf8 COLLATE utf8_general_ci;
      • 表:ALTER TABLE 表名转换为字符集 utf8 COLLATE utf8_general_ci;
      • 列:ALTER TABLE 表名 MODIFY 列名 VARCHAR(n) 字符集 utf8;
  3. 手动插入阿拉伯数据:

    • 使用支持阿拉伯语文本插入的工具,例如SQLYog 或 phpMyAdmin。
  4. 右键单击选项(如果使用 SQLYog):

    • 右键单击数据库、表格或列,然后选择“更改”。
    • 设置字符集UTF-8 和 UTF-8_general_ci 的排序规则。

通过执行以下步骤,将从 MySQL 数据库存储和检索正确的阿拉伯字符,不带任何问号。

以上是MySQL存储数据时为什么出现问号而不是阿拉伯文本?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板