コーディングの問題でのJava

多くの場合、記録された希望は私たちにいくつかの助けを与えることができます学んだ問題は、開発プロセスではなく、大きな問題に文字化けします遭遇、しかし、迷惑な人々は、今日我々は教訓を開発します。

いくつかの概念:
文字:人々が使用することを抽象的な意味での記号、シンボル。例: '1'、 '中'、 'A'

バイト:コンピュータユニット、8ビットの2進数のデータを格納し、それは非常に特異的な記憶空間であります

文字セット:文字を使用します。これは漢字、文字や記号が所得標準が何であるかです。コレクションの含まれる「文字」「文字セット」と呼ばれています。

コード:指定した各「文字」は、この規定は、「コード」と呼ばれているストレージのどのバイトで1バイト以上のメモリバイト、していること

外層は、また、「コーディング」の手段を含んでいることを意味する「文字の集合」に加えて、などGB2312、GBK、JIS、:通常我々のような、「文字セット」と呼びます。

様々なコーディング:
ASCIIコード
  我々は、コンピュータ内部のすべてのデジタルデータで表現することになっているので、コンピュータは、使用する必要の最上位バイトが0である、各バイトがあるため、制限され、英語の文字、数字のみを認識しているため0〜127までの数字を表現します。Aは、97の対応する実施例65に対応します。これは、情報交換用米国標準コード、ASCIIコードであります

GB2312コード
  世界のコンピュータの人気が、多くの国や地域では、このような漢字として、コンピュータを導入した文字で自分自身を参照してください。現時点では、バイトの番号の範囲は、すべての漢字を含むには小さすぎる表現することができることを見出しました。そして、要件は、文字を表すために2つのバイトを使用します。

  米国:オリジナルのASCII文字コードは変わらないが、区別するために2つのASCII文字で漢字を区別するために、バイトを使用します。各バイトの最上位ビットは、漢字GB2312符号化される1(すなわち、中国のバイナリは負)の規定を、

GBK
  あまりにも多くの漢字ので、より多くの中国の文字を追加することに基づいてGB2312は、このエンコードはGBKです

  質問:中国だけで、私たちはすべての漢字を知っているが、もし他の国、および国コード表を漢字に含まれていない場合。ごみや他の文字など、コンピュータ上に表示されたときにそう。

  解決策:理由もたらしコードするローカライズされた文字の様々な国の影響に対処するために、コーディング統一世界内のすべての文字を入れた--- Unicodeでエンコードされ、この1つは、世界で固定文字表示の任意の場所である、などどこでも漢字の兄は、進54E5で表現されています。Unicode文字エンコーディングは、2つのバイトを占めています。

UTF-8は
  、また、Unicodeとして知られている、Unicode文字エンコーディングのための可変長であるUnicodeの実装の一つです。最初のバイトを符号化することは、まだソフトウェアは、元のASCII文字を扱うか、単にあなたが使用し続けることができ、小さな部分を変更する必要はありませんになりASCIIと互換性があります。したがって、それは徐々にエンコードされた電子メール、Webページや他の保存または送信されたテキストアプリケーション、優先順位の使用となっています。IETF(Internet Engineering Task Force)のすべてのインターネットプロトコルはUTF-8エンコーディングをサポートするために必要とされる必要があり

文字符号化および復号化
バイトの形式でコンピュータネットワークに送信された情報。それでは、どのようにバイトになるのですか?これは、符号化プロセスです。そして、コンピュータは、ユーザーがそれについて知っているように、どのようにこのコードを受け取りますか?復号化処理であるヒト列によって認識されなければならないコンバートバイト。

  コード:バイト配列に文字列を変換します

  デコード:バイト配列を文字列に

注:エンコードおよびデコード形式が同じ形式である必要があり、そうでない場合は文字化け

出力が文字化けして、以下のコードです:

文字列str =新しい文字列( "AA帅哥");
//编码操作
バイト[] strByte = str.getBytes( "GBK")。
       
文字列STR2 =新しい文字列(strByte、 "ISO-8859-1");
System.out.println(STR2)。

文字化けしないように、符号化および復号化フォーマットが一致していなければなりません。

文字列str =新しい文字列( "AA帅哥");
//编码操作
バイト[] strByte = str.getBytes( "GBK")。
 
文字列STR3 =新しい文字列(strByte、 "GBK");
System.out.println(STR3)。

 

おすすめ

転載: www.linuxidc.com/Linux/2019-12/161837.htm