gpt4 book ai didi

php - UTF-8 字符无法正确显示

转载 作者:可可西里 更新时间:2023-10-31 22:41:50 24 4
gpt4 key购买 nike

这是我的 PHP 代码:

<?php
$result = '';
$str = 'Тугайный соловей';
for ($y=0; $y < strlen($str); $y++) {
$tmp = mb_substr($str, $y, 1);
$result = $result . $tmp;
}
echo 'result = ' . $result;

输出是:

Тугайный Ñоловей

我能做什么?我必须将 $result 放入 MySQL 数据库中。

最佳答案

您的文件的编码是什么?它也应该是UTF8。您的 http 服务器的默认字符集是什么?它也应该是 UTF-8。

编码仅在以下情况下有效:

  • 文件编码正确
  • 服务器告诉传送文件的编码是什么。

使用数据库时,您还必须为数据库字段设置正确的编码 MySQL 客户端与服务器通信的方式(参见mysql_set_charset()) .只有字段是不够的,因为您的 MySQL 客户端(在本例中为 PHP)可以默认设置为 ISO 并重新解释数据。所以你最终得到了 UTF8 DB -> ISO 客户端 -> 注入(inject)到 UTF8 PHP 脚本中。难怪最后为什么搞砸了:-)

如何使用正确的字符集提供文件?

header('Content-type: text/html; charset=utf-8') 是一种解决方案

.htaccess 文件包含 AddDefaultCharset UTF-8 是另一个

HTML 元内容类型可能也适用,但使用 HTTP header 发送此信息总是更好。

PS:您还必须使用 mb_strlen(),因为 UTF8 字符串上的 strlen() 可能报告的长度超过实际长度。

关于php - UTF-8 字符无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5733336/

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