我想實現簡單的阿拉伯語到英語音譯。我已經定義了一個映射數組類似如下:PHP:作爲數組鍵的阿拉伯字符
$mapping = array('ﺏ' => 'b', 'ﺕ' => 't', ...)
我期待下面的代碼阿拉伯語字符串轉換成其相應的音譯
$str = "رضي الدين";
$strlen = mb_strlen($str, "UTF-8");
for($i = 0; $i <= $strlen; $i++) {
$char = mb_substr($str, $i, 1, "UTF-8");
echo bin2hex($char); // 'd8b1' for ﺭ
// echo $mapping["$char"];
}
但$char
不匹配的鑰匙。這怎麼解決?
源代碼以UTF-8加載。
編輯
當我的$mapping
每個鍵做bin2hex()
我得到比我有對應$char
得到不同的值。例如,對於ﺭ
,我得到efbaad
和d8b1
。他們顯然不匹配,他們沒有轉換。
foreach ($mapping as $k => $v) {
echo $k . ' ' . bin2hex($k) . '<br>'; // 'efbaad' for ﺭ
}
只有'í'得到相同的值並被轉換。
我不知道是什麼問題!
EDIT2
This chart實際上表明,這兩個代碼是指ﺭ
謝謝!我認爲我的環境還存在一些其他問題,因爲您的代碼輸出與我的代碼相同。只有'ي'匹配並轉換爲'i' –
@Affan我的阿拉伯語言知識是_very_基本:) –