如何将日语英语字符转换为普通英语字符?

时间:2013-02-08 16:25:58

标签: php string utf-8 character

我有日语英语字符。 这个字符不是正常的英文字符串。

Characters: Game

如何在 php 中将此角色转换为普通英文字符?

3 个答案:

答案 0 :(得分:4)

从每个字符的序数值中减去65248。换句话说:

$str = "Game some other text by ヴィックサ";
$str = preg_replace_callback(
    "/[\x{ff01}-\x{ff5e}]/u",
    function($c) {
        // convert UTF-8 sequence to ordinal value
        $code = ((ord($c[0][0])&0xf)<<12)|((ord($c[0][1])&0x3f)<<6)|(ord($c[0][2])&0x3f);
        return chr($code-0xffe0);
    },
    $str);

这将使用正常宽度等效替换所有“全宽”字符。

答案 1 :(得分:1)

我确信有一个更简单的答案,但是你不能用特殊的章程作为关键字和你想要的字符作为值来制作一个dictonary对象

然后只做一个简单的查找和替换?

答案 2 :(得分:0)

使用 mb_convert_kana 会更容易:

$string = 'Characters: Game';
$newString = mb_convert_kana($string,'a');