Как преобразовать японский английский символ в нормальный английский символ?
У меня есть японский английский символ. Этот символ не является обычной английской строкой.
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');