亚洲字符在php / html中无法正常显示

时间:2015-03-09 02:46:11

标签: php

我正在尝试从字符串中绘制一个随机的日文字符,但是当我打印它时,它会显示为“?”。这是代码:

$ 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而且是。

但没有任何作品,任何想法?

1 个答案:

答案 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)];

工作演示:http://codepad.viper-7.com/FN8CA0