Как преобразовать японский английский символ в нормальный английский символ?

У меня есть японский английский символ. Этот символ не является обычной английской строкой.

Characters: Game

Как преобразовать этот символ в обычный английский символ в php?

3 ответа

Решение

Вычтите 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);

Это заменит все символы "полная ширина" их эквивалентами обычной ширины.

Я уверен, что есть гораздо более простой ответ, но вы не могли бы сделать диктонный объект со специальным уставом в качестве ключа и символом, который вы хотите в качестве значения

тогда просто сделать простой поиск и заменить?

Было бы проще использовать mb_convert_kana:

      $string = 'Characters: Game';
$newString = mb_convert_kana($string,'a');
Другие вопросы по тегам