我有以下两个字符串:
$str1 = 'O?';
$str2 = 'Ö';
$e1 = mb_detect_encoding($str1);
$e2 = mb_detect_encoding($str2);
var_dump($str1);
var_dump($str2);
echo 'e1: '.$e1.', e2: '.$e2;
Run Code Online (Sandbox Code Playgroud)
结果是:
string(3) "O?"
string(2) "Ö"
e1: UTF-8, e2: UTF-8
Run Code Online (Sandbox Code Playgroud)
看来它们不仅是德语字符,而且每个字符都不相同,因此可以将它们转换为ASCII
PHP:用UTF-8字符串中最接近的7位ASCII等效字符替换变音符号
不会产生相等的结果。有没有办法既这些字符串转换为这些ASCII形式之一BNOE或BNO?
我知道也许我可以从这两者中复制Ö并包括在strtr搜索和替换数组中,但是我不知道如何以与第一个Ö相同的方式来再现所有编码的字符。