gpt4 book ai didi

php - 在 UTF8 网页上显示以 ISO-8859-2 编码的数据库数据

转载 作者:行者123 更新时间:2023-11-29 12:12:05 24 4
gpt4 key购买 nike

我需要显示存储在 Postgresql 数据库中并以 SQL_ASCII 编码的数据(我无法更改数据库编码)。该应用程序是用 PHP 编写的(使用 Silex 框架和 Doctrine DBAL),最终应用程序中使用的字符集通常是 UTF8。

有什么方法可以自动将数据从 ASCII 编码转换为 UTF8 编码并正确显示数据?

谢谢!

编辑:postgresql 数据库中的数据以 ISO-8859-2 编码存储。

最佳答案

UTF8 特意设计为与真正的 7 位 ASCII 兼容,因此数据库中这 128 个字符中的任何字符都已经是有效的 UTF8,因此可以按原样使用。

但是,如 the Postgres manual page on encodings 中所述,SQL_ASCII 字符集实际上并不拒绝 ASCII 范围之外的字符:

When the server character set is SQL_ASCII, the server interprets byte values 0-127 according to the ASCII standard, while byte values 128-255 are taken as uninterpreted characters. ... Thus, this setting is not so much a declaration that a specific encoding is in use, as a declaration of ignorance about the encoding.

因此,如果您的数据中有任何非 ASCII 字符,您需要知道它们存储在什么实际字符集中(例如 ISO 8859-15 或 Windows CP1252)并使用类似 iconv()mb_convert_encoding()

关于php - 在 UTF8 网页上显示以 ISO-8859-2 编码的数据库数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28648069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com