gpt4 book ai didi

尝试使用 UTF-8 字符串时 PHP htmlspecialchars() 函数出错

转载 作者:行者123 更新时间:2023-11-29 09:15:52 25 4
gpt4 key购买 nike

我做了以下事情:

  1. 我有一个包含数据的电子表格。其中一行中有一个 ü 字符。
  2. 我将其保存为 OpenOffice.org 中的 CSV 文件。当它要求我输入字符编码时,我选择 UTF-8。
  3. 我使用 Navicat 创建 MySQL 数据库表、采用 UTF-8 utf8_general 编码的 InnoDB 并导入 CSV。
  4. 我尝试使用 PHP 函数 htmlspecialchars($string, ENT_COMPAT, 'UTF-8')哪里$string是包含特殊 ü 字符的字符串。

它给了我一个错误:参数中的多字节序列无效。当我改变'UTF-8''ISO8859-1' ,不会引发错误,但会显示不正确的字符。 (“未知字符”字符,看起来像 <?> )

如果我使用 HTML 表单更新数据库中的字符串,错误就会消失并且字符会正确显示,但是,当我随后在 Navicat 中查看记录时,它会显示两个字符:

[1/4][A with some thing on top of it]

一些不被视为一个字符的多字节。`

发生了什么事,哪里出了问题,我该怎么办?

最佳答案

虽然我不明白“无效多字节”错误从何而来,但我很确定 htmlspecialchars()not your culprit :

For the purposes of this function, the charsets ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252, and KOI8-R are effectively equivalent, as the characters affected by htmlspecialchars() occupy the same positions in all of these charsets.

根据我的理解,htmlspecialchars() 对于 UTF-8 字符串应该可以正常工作,无需指定字符集。我敢打赌,包含表单的 HTML 页面或您使用的数据库连接不是 UTF-8 编码的。对于后者,请尝试发送

SET NAMES utf8;

在执行插入之前到 mySQL。

关于尝试使用 UTF-8 字符串时 PHP htmlspecialchars() 函数出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4237911/

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