PHP MySQL数据库怪字符

6 php mysql utf

我正在尝试输出存储在MySQL数据库中的产品信息,但它正在写出一些奇怪的字符,比如里面有问号的钻石.

我认为它可能是编码/ UTF8问题,但我已经指定了我想要的编码:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

这是正确的吗?我应该检查什么?

Tat*_*nen 20

如果只有来自数据库的数据中包含奇怪的字符,请确保MySQL连接也使用UTF8:

mysql_query("SET NAMES UTF8");
Run Code Online (Sandbox Code Playgroud)

在任何其他查询之前.否则,如果字符也出现在"手写"文件中,请确保文件在编辑器中保存为UTF-8.您还可以尝试通过PHP设置charset标头:

header('Content-type: text/html; charset=UTF-8');
Run Code Online (Sandbox Code Playgroud)

例如,还要确保要查询的表中的所有字段都设置为某些UTF-8变体utf8_general_ci.


The*_*ppo 5

我假设您希望结果为 utf8

  • 保存你的 php 脚本 utf8 编码
  • 确保您的 http 标头(或某些元标记)表明输出是 utf8
  • MySql 中的所有表都应该是 utf8
  • 最后但并非最不重要的是,客户端和服务器之间的连接应该是 utf8。(这可以在 php.ini 设置中的某处处理或通过对数据库进行以下查询:SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'

如果您遵循所有 4 点,您将永远不会遇到编码损坏的任何问题。