我正在替换名为 $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 = �*�드
答案 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");
输出:
제드
제*