gpt4 book ai didi

php - UTF8 正确的文本但保存不正确

转载 作者:行者123 更新时间:2023-11-30 00:54:25 24 4
gpt4 key购买 nike

我有 UTF-8 MySql DB,在浏览器中显示某些内容从来没有问题但是当我尝试将 UTF8 数据保存到文件中(或通过强制下载传输它)时,我遇到了问题。所有非延迟字符显示不正确(无论我切换什么编码)仅供引用:这部分文本是希伯来语。

到目前为止我尝试过但失败了:

  • 设置名称“utf-8”
  • 设置mb_internal_encoding('UTF-8')
  • utf8_encode 部分字符串或整个文本
  • putting fwrite($f, pack("CCC",0xef,0xbb,0xbf)); (是的,文件被识别为 utf8,但符号仍然不正确)

最令人沮丧的是浏览器始终显示正确先生们有什么想法吗?

PS:这是我发送文件强制下载的方式:

header('Content-Description: File Transfer');
header('Content-Type: application/xml; charset=utf-8');
header('Content-Disposition: attachment; filename=xml_invoices.xml');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . strlen($xml_file));
echo $xml_file; //this string contains latin and non-latin charachters
exit();

最佳答案

您可能想要更改连接的字符集。连接后发出 SET NAMES 'UTF-8',或者如果使用 PDO,则将字符集配置 charset=utf8 附加到连接字符串。

这是必要的,因为客户端在从服务器检索字节流后会对文本列的内容进行转码,而转码是从列编码到客户端字符集,因此 you must override it .

为了确定,请仔细检查相关列的编码是否能够存储您的字符(例如某些 unicode 方案,如 UTF-8),并且文本是否正确存储(从 MySQL 工作台或其他一些客户端检查)比您的应用程序)

关于php - UTF8 正确的文本但保存不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20709296/

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