- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试在页面上显示数据提要。我们遇到了一个奇怪字符的编码问题。出于某种原因,提要中有 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/
这里有问题。我以十六进制数字的形式从硬件接收数据。我用它把它们变成字符串(这是有意的): arr.push(data.charCodeAt(0).toString(16)) 效果很好。例如,我收到 0
在我从我无法控制的源获取的文本文件中,其中文本内容会定期更改,并且我必须通过重新下载和处理进行补偿,字符 U+FFFD 经常出现(但并非总是),当什么是意思是单引号或 ' 字符。 如何编码替换操作,以
我使用的是 PDFBox 2.0.1。 我尝试动态添加一些(用户提供的)UTF8 文本到表单字段并向用户显示结果。不幸的是,要么 pdf 库无法正确编码特殊字符,例如“äöü”...要么我找不到任何可
我必须接受 utf-8 格式的用户输入并将其提供给仅接受 ISO-8859-15 的系统。 我想将用户提供的 unicode 字符串中的所有非 ISO-8859-15 字符转换为 U+FFFD,以便我
我正在尝试在页面上显示数据提要。我们遇到了一个奇怪字符的编码问题。出于某种原因,提要中有 U+FFFD 字符。而htmlentities()不会转义字符,所以我需要手动替换。 (我使用的是 PHP 5
我构建了一个 Java 服务器程序,它是出勤跟踪器应用程序的一部分。它接收来自客户端应用程序的命令,并执行连接到我们设置的数据库的服务器功能。问题是,一旦我们启动程序,它会在 session 开始时自
我有一个 C# .net web 项目,它的全局化标签设置为: 当此 URL 是 Flash 应用程序时(在浏览器中手动输入 URL 时会遇到同样的问题):c_product_search.as
我正在编写一个 C++ 数据转换程序,它将数据从 ODBC 数据源复制到 Oracle 数据库中。由于要移动的数据量非常大(数十亿行),因此选择了 C++(具有数组操作)。 现在文本列“应该”是 UT
调用的响应文本充满了替换 unicode 字符 (U+FFFD) �。我无法将 responseType 设置为 arraybuffer。 Answer where responseType can
这是 Go blog 中的练习。 [练习:将无效的 UTF-8 字节序列放入字符串中。 (如何?)循环的迭代会发生什么?] 我所做的是 const nihongo = "\xbd日本語\xbd
我是一名优秀的程序员,十分优秀!