【问题标题】:How to make internal processing encoding change to UTF8 in PHP?如何在 PHP 中将内部处理编码更改为 UTF8?
【发布时间】:2009-09-02 22:34:15
【问题描述】:

目前在我的应用程序中,utf8 编码的数据被 PHP 的内部编码破坏了。

如何使其与utf8一致?

编辑:为了展示示例,请告诉我如何在 PHP 中输​​出当前的内部编码?

在 php.ini 中我发现了以下内容:

default_charset = "iso-8859-1"

这意味着拉丁语1。

怎么改成utf8,比如说utf8的iso版本是多少?

【问题讨论】:

  • 你能详细说明一下,并举一些例子吗?

标签: php encoding utf-8


【解决方案1】:

改成:

default_charset = "utf-8"

没有 UTF-8 的 ISO 版本。

您需要具体说明细节,因为编码可能在您的 PHP 应用程序的许多不同区域受到破坏。 常见的问题领域是:

从数据库保存和检索: 数据库编码必须与从 PHP 发送给它的字符串相同,或者您必须将字符串转换为 DB 编码。

PHP4的单字节字符串函数: PHP 的 strlen()、str_replace() 等函数在 UTF-8 等多字节编码上不会产生正确的结果,因为它们是在单字节上操作的。

页面编码: 确保浏览器知道您发送的是 UTF-8。

【讨论】:

  • utf-8 和 iso-10646-1 不一样吗?对于“PHP4的单字节字符串函数”,您的意思是将所有这些字符串函数替换为mb_函数?
  • iso-10646-1,不知道。不过,我不会将配置设置为 iso-10646-1。是的,使用 PHP4 的 mb_functions。 PHP5 原生支持 UTF-8。
  • @bucabay - php5 和 PHP4 有同样的问题,没有“原生支持”
【解决方案2】:

您可以更改 php 文件中的字符编码。要更改 php 页面中的编码,请使用以下函数。

$new_value = htmlentities('$old_value',ENT_COMPAT, "UTF-8");

您也可以在 html 头部部分添加以下内容

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

我希望这将有助于解决您的问题。

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 2015-09-05
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    相关资源
    最近更新 更多