4
utv8からasciiへの変換には//TRANSLIT//IGNORE
のiconvを使用してください。それは現在のロケール(私の場合はde_DEの)に応じて適切な音訳に変換できない文字を置き換える:Iconv:ASCIIを使用したEILSEQ // ASCIIなし// TRANSLIT // IGNORE
> echo 'möp' | iconv -f 'UTF8' -t 'ASCII//IGNORE'
mp
iconv: illegal input sequence at position 5
:しかし
> echo 'möp' | iconv -f 'UTF8' -t 'ASCII//TRANSLIT//IGNORE'
moep
、ちょうど//TRANSLIT
なし//IGNORE
を使用して、それがエラーをスローします
なぜそれが起こるのだろうか。入力シーケンスはまったく同じで、//IGNORE
は無効な文字をスキップしてはいけませんか? iconv C APIを使用しているときにEILSEQエラーが発生する - 基本的に入力文字列に無効なUTF8が含まれているかどうかわからない...