U + FFFD-在PHP的字符串中插入特殊字符

时间:2018-10-17 19:27:44

标签: php utf-8

因此,我试图在PHP中给定字符串中遇到的最长单词的前面添加一个<br>标记。我正在使用的字符串可能还包含来自各种语言的字符,但是所有字符串都以UTF-8编码。

// Here I'm prepending a <br> tag before the longest word in $words which is a subset of $string
substr_replace($string, "<br>", strpos($string , $words[$longest]) - 1, 0);

但是我注意到,当我用这一行代码修改韩文或俄文字符串时,会插入一个U + FFFD字符,甚至替换了该字符串中的某些字符。会有人知道为什么会发生吗?

谢谢

1 个答案:

答案 0 :(得分:0)

查看此内置函数nl2br [http://php.net/manual/en/function.nl2br.php]

其在集合[https://en.wikipedia.org/wiki/Specials_(Unicode_block)中的未定义字符,因此有点像null。

在存储数据之前,我将使用base64_encode [http://php.net/manual/en/function.base64-encode.php],在提供数据之前,我将使用base64_decode [http://php.net/manual/en/function.base64-decode.php]}。

或者,您也可以尝试utf8_encode [http://us2.php.net/manual/en/function.utf8-encode.php]和utf8_decode [http://us2.php.net/manual/en/function.utf8-decode.php]

也是UTF-8字符集(https://en.wikipedia.org/wiki/UTF-8