php - 网站上的字符编码有困难

标签 php postgresql unicode internationalization character-encoding

我有一个网站,允许世界各地的用户提交个人资料。在存储/检索/显示字符之间的某个地方,它们没有正确呈现。我不确定哪一步有问题,但这里是对正在发生的事情的分割。

当我通过 psql 命令行界面从我的 PostgreSQL 数据库执行 SELECT 时,我看到一些字符出现,例如以下字符,这让我相信它们正在正确保存:

  • 一个

但是,在我的网站上,我看到上述字符分别如下显示:

  • 一个
  • ……
  • ¥

我曾尝试更改 header 中的编码,但没有成功,来自:

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

到:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

我只是想了解一些关于任何 PHP 设置/函数、PostgreSQL 设置、HTML 字符集或任何其他我应该研究的信息,以确保所有内容都能正确显示给我的用户。

最佳答案

* �
* �
* å

此模式表示它们首先从 UTF-8 转换为 ISO-8859-1,然后再次从 ISO-8859-1UTF-8

首先,您的内容类型 header 没问题。保留它 UTF-8

从数据库查询数据和将输出发送到响应之间的代码逻辑中的某些部分错误地使用了 ISO-8859-1。这包括从数据库查询数据的步骤。我会先从第一步开始。如果 pg_set_client_encoding 试试帮助:

pg_set_client_encoding($connection, 'UTF8');

描述了其他步骤here .希望这会有所帮助。

关于php - 网站上的字符编码有困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1725530/

相关文章:

php - 在 PHP 中将 Microsoft 弯引号转换为直引号

android - 我可以在安卓手机上使用 postgresql 吗?

python - 从 Facebook 数据导出中解码看似格式错误的 Unicode 指针的 utf8 表示形式

PHP 用 cookie 解析 json 数组并从中设置所有 cookie

php - 如何在 Symfony 2.3 的功能测试中登录 session 中的用户?

postgresql - postgres 锁表以避免读/写异常

sql - 如何查询坐标 5 英里半径范围内的所有行?

ios:本地化表情符号名称(kCFStringTransformToUnicodeName)

django - Django 中的 Unicode 应用程序名称

php - 将特定元素的事件绑定(bind)到特定目标