1

print iconv('UTF-8', 'us-ascii//TRANSLIT', 'Ин Совет Россия, дог фес ю!');

なぜこの通知がスローされるのかわかりません。文字列は有効な UTF8 です。

すべての文字を同等のASCII文字に変換する必要がありますよね?

たとえば、ИあるべきであるIнあるべきであるnなど...

4

1 に答える 1

5

このiconv関数は実際には音訳を行いません。パラメータ名TRANSLITは誤解を招きます。ドキュメントには次のように記載されています。これは、文字がターゲット文字セットで表現できない場合、1 つまたは複数の似たような文字で近似できることを意味します。」どうやらこれは、「€」から「EUR」、「ß」から「ss」など、アドホックなマッピングのセットにすぎないことを意味しているようです。

音訳には、別のものが必要です。ロシア語のテキストをキリル文字からラテン文字に音訳する場合、難しいのは、どの音訳方式を使用するかを決定することです。後はただの生仕事です。このようなものに、データを追加しただけです (ロシア語で使用されるキリル文字と各文字の望ましい音訳をカバーする配列):

$msg =  'Ин Совет Россия, дог фес ю!';
$cyr = array('и', 'я');
$lat = array('i', 'ya');
$latmsg = str_replace($cyr, $lat, $msg);
print $latmsg;
于 2012-08-11T18:08:18.190 に答える