java中这个页面默认是utf-8编码的,1输出乱码可以理解,可是2就不理解了?
PHPz
PHPz 2017-04-18 10:51:36
0
2
695

s按照gbk解码,在按照gbk组合成String,为什么就不是乱码了呢? 那2这个字符串是最终是什么编码 utf-8还是gbk

PHPz
PHPz

学习是最好的投资!

全員に返信(2)
Peter_Zhu

1: s.getBytes() がパラメーターを取らない場合、jdk のデフォルトのエンコーディング (utf-8 の可能性があります) を呼び出して文字列を byte[] にデコードし、gbk エンコーディング メソッドを使用して再エンコードします。 byte[]をStringに入力すると文字化けが発生します。

2.s.getBytes('gbk') gbkメソッドに従って文字列をデコードし、gbkメソッドを使用して再エンコードするので、文字化けはありません。

いいねを押す +0
洪涛

上で述べたことは正しいです。jdk のデフォルトのエンコーディングは file.encoding で指定されたエンコーディングであることを付け加えておきます。Dfile.encoding を通じて JVM のデフォルトのエンコーディングを変更できます。 =GBK コーディング。 file.encoding中指定的编码,可以通过Dfile.encoding=GBK这样来修改JVM的默认编码。

再补充一点编解码的知识,“你好”这个中文要在计算机中传输,必然要把它转换为2进制。怎么转二进制就是这里说的解码
编码的方式有很多种,比如Unicode字符集。这个字符集里面就是各种符号对应的数字,比如用2345来表示,然后按照一定的方式转换的二进制(具体怎么转换可以网上找一下具体过程)。
接收到这一串二进制数,怎么转为汉字就是这里说的编码。编码需要按照一定的方式去解才能得到正确的字符对应关系,比如的二进制为0101010010,需要按照utf-8的方式去编码才能得到

コーディングとデコーディングの知識を追加すると、漢字「こんにちは」をコンピューターに送信する場合は、バイナリに変換する必要があります。バイナリに変換する方法がここで言うデコードです。
Unicode 文字セットなど、多くのエンコード方式があります。この文字セットには、さまざまな記号に対応する数字が含まれています。たとえば、you は 2345 で表され、その後、特定の方法でバイナリに変換されます (特定の変換方法については、オンラインで特定のプロセスを見つけることができます)。
この二進数の文字列を受け取った後、それをどのように漢字に変換するかが、 ここで言うエンコードです。正しい文字対応を取得するには、エンコードを特定の方法で解決する必要があります。たとえば、you のバイナリは 0101010010 であり、utf に従ってエンコードする必要があります。 -8 を使用すると、このシンボルを You 取得して表示します。 🎜
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!