回答受付が終了しました

ID非公開

2020/10/28 20:00

22回答

皆様のお知恵をお貸しください。 android対応のアプリ開発を行っており

補足

誤記があったので訂正致します。 誤)etc-jpに非対応の〜 正)euc-jpに非対応の〜

Android開発 | アプリ開発17閲覧xmlns="http://www.w3.org/2000/svg">500

回答(2件)

0

今のICT機器の文字コードには主にUnicodeが使用されています。 エンコード方式は、昔はUTF-16が主に使用されていましたが、今はUTF-8が主に使用されています。 Unicodeが主流になる前は、PCではShift_JISが、UnixではEUC-JPが、日本語メールではISO-2022-JPが使用されていました。 これらの日本語用文字コードはJIS規格に収録されている文字の文字集合に準拠しています。 Shift_JISはJIS X0201とJIS X0208 EUC-JPはJIS X0201とJIS X0208、JIS X0212 ISO-2022-JPはASCIIまたは半角カタカナを除いたJIS X0201とJIS X0208 を、使用できる文字集合としています。 気をつけなくてはいけないのは、JIS規格外の文字を文字集合に取り込んだ亜種が存在することです。 例えばWindowsのShift_JISはNEC特殊文字とIBM拡張文字、NEC選定IBM拡張文字というJISコード規格外の文字が使用できます。 本来のShift_JISと区別するため、WindowsのShift_JISにはCP932(Windows-31J)と呼ばれます。 EUC-JPやISO-2022-JPにも同様の亜種が有り、さらにEUC-JPにはJIS X0212に対応していないバージョンがあります。 お使いのEUC-JPが、NEC特殊文字などを含む亜種なのか、またはJIS X0212に対応しているのかによって使える文字が違ってきます。 文字集合の大きさは Unicode>EUC-JP≧Shift_JIS>ISO-2022-JP です。亜種の文字コードの存在を考えないのなら、小さい文字集合の文字コードから大きい文字集合の文字コードへの変換で変換できない文字は出現しませんが、Unicodeから他の文字コードへの変換では、変換できない文字が出現します。 JIS X0201、JIS X0208、JIS X0212の文字集合を網羅した集合を作り、それと入力文字を突き合わせ、無ければEUC-JPの文字では無いとするのが簡単だと思います。Unicodeの規格は複雑怪奇なので、ちゃんと対応しようとすれば、結構大変です。