1. Java ファイルはクラスを形成するためにコンパイルされます
ここでの Java ファイルのエンコーディングは多様である可能性がありますが、Java コンパイラーはエンコーディングに従ってこれらのエンコーディングを自動的に修正します。 Javaファイルの形式を読み込み、クラスファイルを生成しますが、ここでのクラスファイルのエンコードはUnicodeエンコード(具体的にはUTF-16エンコード)です。
したがって、Java コードで文字列を定義します。
String s="中国語文字";
Java ファイルで使用されるエンコーディングに関係なく、コンパイル前、コンパイル後、クラスの場合、それらはすべて同じであり、Unicode エンコーディングで表されます。
2. JVM でのエンコーディング
JVM がクラス ファイルをロードして読み取るとき、Unicode エンコーディングを使用してクラス ファイルを正しく読み取り、最初に定義された文字列を読み取ります。 s="漢字 ";メモリ内の表現は Unicode エンコードです。
String.getBytes() を呼び出すと、コード化けの原因が実際に発生します。このメソッドはプラットフォームのデフォルトの文字セットを使用して文字列に対応するバイト配列を取得するためです。中国語版 Windows の場合 異なるシステムやデータベースを複数回エンコードした場合、原理を理解していないとコードの文字化けが発生しやすくなります。したがって、システム内では文字列のエンコーディングを統一する必要があり、この統一を外部統一と言います。たとえば、メソッド文字列パラメータ、IO ストリーム、中国語システムでは、GBK、GB13080、UTF-8、UTF-16 などを使用できますが、使用される可能性のある文字を確実に使用できるように、より大きな文字セットを選択する必要があります。全て正常に表示でき、文字化けの問題も回避できます。 (すべてのファイルがASCIIコードであると仮定します) それでは双方向変換は不可能です。
UTF-8 はすべての中国語文字セット エンコーディングに対応しているわけではないことに注意してください。そのため、特殊な状況下では、UTF-8 を GB18030 に変換するときに文字化けが発生する可能性があります。ただし、愚かなグループがよくこれを行います。 . 中国のシステムは理由は説明できませんが、UTF-8 エンコーディングを使用することを好みます。最も愚かなことは、複数の人間が 1 つのシステムで作業することです。ソース コード ファイルに GBK エンコードを使用する人もいれば、UTF-8 を使用する人も、GB18030 を使用する人もいます。 FK、彼らは全員中国人であり、アウトソーシング プロジェクトではありません。なぜ UTF-8 を使用するのでしょうか? それはクレイジーです! ANT スクリプトのコンパイル時に認識されない文字エンコーディングを避けるために、すべてのソース コードに GBK18030 を使用しても問題ありません。
したがって、中国語システムの場合は、文字化けを最大限に回避するために、GBK または GB18030 エンコーディング (実際、GBK は GB18030 のサブセットです) を選択することが最善です。
3. メモリ内の文字列のエンコーディングメモリ内の文字列は、クラス コードから直接読み込まれた文字列に限定されず、テキスト ファイルから読み取られる文字列もあります。データベースから読み取られるものもあれば、バイト配列から構築されるものもありますが、基本的には Unicode でエンコードされていません。理由は単純で、ストレージの最適化です。
したがって、処理する前に「ソース」のエンコードが明確であり、指定されたエンコード方式を使用してメモリに正しく読み込まれる必要があります。これがメソッドのパラメータである場合、このパラメータは別の日本語システムから渡される可能性があるため、文字列パラメータのエンコーディングは実際には明確である必要があります。文字列エンコードが明確な場合、文字化けを避けるために必要に応じて文字列を正しく処理できます。 文字列をデコードおよびエンコードするときは、次のメソッドを呼び出す必要があります:
public class Test { public static void main(String[] args) { System.out.println("当前JRE:" + System.getProperty("java.version")); System.out.println("当前JVM的默认字符集:" + Charset.defaultCharset()); } }
以上がJava 文字エンコーディングの例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

封装是一种信息隐藏技术,是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法;封装可以被认为是一个保护屏障,防止指定类的代码和数据被外部类定义的代码随机访问。封装可以通过关键字private,protected和public实现。

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于设计模式的相关问题,主要将装饰器模式的相关内容,指在不改变现有对象结构的情况下,动态地给该对象增加一些职责的模式,希望对大家有帮助。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Dreamweaver Mac版
ビジュアル Web 開発ツール
