我正在尝试从字符串中绘制一个随机的日文字符,但是当我打印它时,它会显示为“?”。这是代码:
$ chars =“あいうえおかきくけたちつてとさしすせそまみむめもら”;
打印$ chars; //< --- WORKS
$ ranLetter = $ chars [rand(0,strlen($ chars)-1)];
print $ ranLetter; //< ---不工作
我尝试用以下内容更新我的html / php页面:
html - php - mysql_set_charset(“utf8”);
我还检查了我的php.ini文件,看看我的default_charset是否设置为UTF8而且是。
但没有任何作品,任何想法?
答案 0 :(得分:3)
你需要使用mb安全功能,这里有一种方法:
<?php
$chars = "あいうえおかきくけたちつてとさしすせそまみむめもら";
function mbStringToArray ($string) {
$strlen = mb_strlen($string);
while ($strlen) {
$array[] = mb_substr($string,0,1,"UTF-8");
$string = mb_substr($string,1,$strlen,"UTF-8");
$strlen = mb_strlen($string);
}
return $array;
}
$new_str=mbStringToArray($chars);
echo $new_str[array_rand($new_str, 1)];
工作演示:http://codepad.viper-7.com/84lcpW
方法2
$chars = "あいうえおかきくけたちつてとさしすせそまみむめもら";
$chars = preg_split('//u', $chars, -1, PREG_SPLIT_NO_EMPTY);
//print_r($chars);
echo $chars[array_rand($chars, 1)];