工作,甚至當我鍵入PHP strtr函數的效率完全不
echo strtr("-äåö-", "äåö", "xxx");
當我使用它下面的例子沒什麼不翻譯它不能正常工作,它輸出該>xxx¥x¶<
,但在所有它讓原來的曼波珍寶。 如果我輸入ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑŐŰÜÒÓÔÕÖØÝߟàáâãäåçèéêëìíîïñòóôõőöøšűùúûüýÿž
的形式,並點擊翻譯它將取代相同的字符串,æ œ
根本不會翻譯。
<form method="POST">
<input style="width:500px;" type="text" name="first_name" />
<input style="width:500px;" type="text" name="last_name" />
<input type="submit" name="submit" value="translate" />
</form>
<?php
$dict = array(
"Æ" => "AE",
"æ" => "ae",
"Œ" => "OE",
"œ" => "oe"
);
$first = strtr($_POST['first_name'], $dict);
$last = strtr($_POST['last_name'], $dict);
$first = strtr($first,
"ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑŐŰÜÒÓÔÕÖØÝߟàáâãäåçèéêëìíîïñòóôõőöøšűùúûüýÿž",
"AAAAAACEEEEIIIINOUUOOOOOOYSYaaaaaaceeeeiiiinooooooosuuuuuyyz");
$last = strtr($last,
"ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑŐŰÜÒÓÔÕÖØÝߟàáâãäåçèéêëìíîïñòóôõőöøšűùúûüýÿž",
"AAAAAACEEEEIIIINOUUOOOOOOYSYaaaaaaceeeeiiiinooooooosuuuuuyyz");
echo $first." --- ";
echo $last;
?>
即使我添加的代碼頂部
foreach ($_POST as $key => $value) {
$POST[$key] = iconv(mb_detect_encoding($_POST["first_name"]), "ASCII//TRANSLIT", $POST[$value]);
}
並粘貼AAAAAACEEEEIIIINOUUOOOOOOYSYaaaaaaceeeeiiiinooooooosuuuuuyyz
它出來像這樣yAyAyAyEyEyIyIyNyUyOyOyOyYyYyayauaueyeyiyiynyoyoyoysyuuuyyyzy�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�y�uay�yuuzu�y�y�y�y�y�y�u�
沒關係,因爲沒有人知道爲什麼,我只是用str_replace
不起作用和str_ireplace
非常成功,不需要任何關於編碼的擔憂。
編輯:我的不好的編碼對str_replace也有影響。我使用的HTML頁面上
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
你介意我問你爲什麼覺得更換有必要有效的UTF-8字符與ASCII? – Borealid 2012-03-14 23:14:54
我不太瞭解字符編碼。所以如果我得到了它不會是UTF-8它會是什麼編碼? – JohnA 2012-03-15 00:27:58