gpt4 book ai didi

PHP:如何对 U+FFFD 进行编码以进行替换?

转载 作者:可可西里 更新时间:2023-11-01 13:08:44 25 4
gpt4 key购买 nike

我正在尝试在页面上显示数据提要。我们遇到了一个奇怪字符的编码问题。出于某种原因,提要中有 U+FFFD 字符。而htmlentities()不会转义字符,所以我需要手动替换。 (我使用的是 PHP 5.3)

我试过以下方法:

$string = str_replace( "\xFFFD",  "_", $string );
$string = str_replace( "\XFFFD", "_", $string );
$string = str_replace( "\uFFFD", "_", $string );
$string = str_replace("\x{FFFD}", "_", $string );
$string = str_replace("\X{FFFD}", "_", $string );
$string = str_replace("\P{FFFD}", "_", $string );
$string = str_replace("\p{FFFD}", "_", $string );

以上均无效。

阅读此页后 - http://php.net/manual/en/regexp.reference.unicode.php - 我不确定我做错了什么。我需要将 UTF-8 支持编译到 PCRE 中吗?

最佳答案

你应该尝试解决原来的问题,FFFD(unicode replacement character)在大多数情况下并不是一个真正的文本字符,而是一个标志,表明某些东西试图在一个UTF 编码,但某些内容实际上并未以 UTF 编码进行编码。它是静默丢弃无效字节或完全停止解码过程的替代方法,无论哪种方式,如果您看到它,就会出现错误。

没有办法知道原来的角色是什么。特别是对于您的解决方案,由于您将字符替换为 _,您甚至无法知道原始源被错误解码。你应该回到源头并正确解码。

注意:源文本可以将 用作文字、普通字符,例如在谈论它时,这样就不会出现错误。我在回答中排除了这种可能性。

关于PHP:如何对 U+FFFD 进行编码以进行替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13727235/

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