使用 str_replace 在韩文字符中显示菱形问号字符

时间:2021-06-07 02:48:51

标签: php

我正在替换名为 $author 的变量的第二个字母中的 '*',但结果似乎是错误的。

注意:我已经放置了 <meta charset="utf-8"> 但错误仍然相同。

这是示例代码

$str_to_replace = "*";
$author_second_char = $row['author'][1]; // value: �
$author_display = $row['author']; //value: 제드
$author = str_replace($author_second_char, "*" ,$author_display );
//example output = �*�드 

1 个答案:

答案 0 :(得分:0)

韩文使用多字节字符,因此不能将字符串用作类似数组的结构,因为每个位置只会代表每个韩文字符的一部分。相反,您需要根据用于存储每个字符的字节数将字符串拆分为一个数组。反复试验发现韩语字符的字节长度为 3。

这是一个关于如何实现它的代码片段。一旦确定了正确的位置,我将其简化为直接替换。

$a = '제드';
$str_to_replace = "*";

$author_array = str_split( $a, 3 ); // necessary because korean uses multibyte characters
$author_array[1] = '*';
$author = implode( '', $author_array);

echo("<br>$a<br>$author");

输出:

제드
제*
相关问题