文字コード、文字化けの対応(2019-12-06)Android、というよりはJavaの話題になると思います。各クラスの詳細は、JavaのAPIから情報を得られます。to_code);)それぞれ変えてみます。(AndroidStudioで試すなら、適当にExampleUnitTestあたりにベタッとコピペして下さい。ただのプリント文です。text:??[1つめは変換してもとに戻す、2つめは文字コード不一致で文字化けする例です。文字コードとして指定できる文字列は各Javaのバージョンにあわせて、Oracleのサポートされているエンコーディング等から確認できます。例として以下https://docs.oracle.com/javase/jp/1.5.0/guide/intl/encoding.doc.htmlAndroidの場合はデフォルトはUTF-8です。他のOS、たとえばWindowsでなにかメモ帳保存とかするとShift_JISになる場合が多いかと。みたいに、どの文字コードなのかを指定したりします。通常はこれで十分かと。...以下、それでは足りない場合のお話です。今度はfor文を使って、1byteずつ、読む範囲を広げていった場合の例になります。コレに置き換えて下さい。扱い方(flipやclear)については、それだけで1ページ必要なのでここでは省略させてください。これを使うと日本語の文字コード変換に失敗した時に、その位置や、失敗箇所の長さを確認したりできます。使い方で苦戦したので今回のメモを残しました。文字コード);だけでは文字化け箇所の情報が足りずに正しく処理しきれない、といった時に使えそうです。最後に例として、example3をメモします。前半ではテスト用に適当な壊れた文字列を作っています。日本語処理を作り込む際は、こんな感じで壊れた文字列を正しく処理できるかどうか、色々試してみて下さい。ESC(=0x1b)。ふつうに改行が発生するだけ。十分な値を指定すること。変換する条件を変えつつ、とりあえず全部デバッグ出力しまくってみると、使い方のヒントになると思います。変わるのが確認できると思います。)文字コードとは一体なにものなのか、については実際にUTF-8やShift_JISのコード一覧表を探して見ると、雰囲気は分かると思います。EUC_JP詳しく知るためには、「文字コードの話」の解説がとても参考になりました。制御コードに加えて、GRやShift-In/Outとかの配慮が必要になってきました。みたいに一括して処理すれば良いかと。飛んで来たこの2byteのデータはこれで一文字分なのか、もう1byteきて(合計3byteで)一文字なのか、そこへ制御コードが割り込んで入ってくると、どこが文字の区切りなのか分からなかったり、しました。いって、自力で文字コードの変換・分岐処理を作るのは、ぜつぼうてきなので、(前述のOracleのサイトで確認した文字コード一覧、一体いくつの文字コードが存在しているんだって話なので)意地でもStringクラスにねじ込むぞ、というのが今回のメモに至った経緯です。私は勉強もかねて自力でやりましたが、ふつうはフリーのvtterm用のライブラリを使えばいいので、自力でどうにかする機会はあまりないかもしれませんが...。商用利用する場合はライブラリのライセンスは確認しましょう。使用して作成しています。使用しています(このサイトについて)。