2

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

Characters: Game

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

4

3 回答 3

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);

这会将所有“全角”字符替换为其正常宽度等效项。

于 2013-02-08T16:51:39.993 回答
1

使用 mb_convert_kana 会更容易:

$string = 'Characters: Game';
$newString = mb_convert_kana($string,'a');
于 2021-05-07T14:12:29.130 回答
0

我敢肯定有一个更简单的答案,但你不能用特殊宪章作为键和你想要的字符作为值来制作一个字典对象

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

于 2013-02-08T16:29:27.137 回答