ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
このエラーの典型
C:\src> javac Hello.java
Hello.java:3: 警告: この文字は、エンコーディングMS932にマップできません。
System.out.println("?????????");
^
Hello.java:5: 警告: この文字は、エンコーディングMS932にマップできません。
// ?????????????????
^
警告4個
原因: Hello.java は UTF-8 で保存されているが、javac は OS 既定の MS932 (Shift_JIS) で読もうとしている → UTF-8 のバイト列を Shift_JIS として解釈できず警告。
対処 1: コマンドラインで -encoding 指定
# UTF-8 ソースを UTF-8 として読ませる
javac -encoding UTF-8 Hello.java
# 複数ファイル
javac -encoding UTF-8 -d build src/**/*.java
# Java 18 以降は javac 既定が UTF-8 になったので不要だが、
# 移植性を考えると明示推奨
javac --release 17 -encoding UTF-8 Hello.java
対処 2: 環境変数で固定
# Linux / macOS の bash / zsh
export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8
# Windows PowerShell
$env:JAVA_TOOL_OPTIONS = "-Dfile.encoding=UTF-8"
# Windows コマンドプロンプト(コードページも変える)
chcp 65001
set JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
対処 3: Maven
<!-- pom.xml -->
<project>
<properties>
<!-- これだけで compiler / resources / surefire 等が UTF-8 になる -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.release>17</maven.compiler.release>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
対処 4: Gradle
// build.gradle
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
tasks.withType(Javadoc) {
options.encoding = 'UTF-8'
}
tasks.withType(Test) {
systemProperty 'file.encoding', 'UTF-8'
}
// Kotlin DSL (build.gradle.kts)
tasks.withType<JavaCompile>().configureEach {
options.encoding = "UTF-8"
}
対処 5: IDE 設定
| IDE | 設定場所 |
|---|---|
| IntelliJ IDEA | File → Settings → Editor → File Encodings → Global / Project / Default を全部 UTF-8、Transparent native-to-ascii conversion はオフ |
| Eclipse | Window → Preferences → General → Workspace → Text file encoding: UTF-8、+ Project Properties → Resource でも UTF-8 |
| VS Code | files.encoding: utf8、files.autoGuessEncoding: true |
| NetBeans | Tools → Options → Miscellaneous → Files → Default Encoding: UTF-8 |
実行時の文字化けは別問題
コンパイル時に解決しても、実行時の標準出力が化けるケースがあります:
# 実行時のデフォルトエンコーディング指定
java -Dfile.encoding=UTF-8 Hello
# JAVA_TOOL_OPTIONS は java / javac 両方に効く
export JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8 -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8"
# Java 18+ は既定 UTF-8 (JEP 400)
# それ未満は明示が必要
# Windows コマンドプロンプトでは
chcp 65001
java -Dfile.encoding=UTF-8 Hello
BOM 付き UTF-8 の罠
Windows の「メモ帳」で保存するとBOM (0xEF 0xBB 0xBF) が先頭に付くことがあり、javac はこれを解釈できずエラー:
Hello.java:1: エラー: 不正な文字: ''
?package com.example;
^
対処: BOM 無し UTF-8 で保存。VS Code / IntelliJ / sublime はメニューから設定可。
確認: ファイルの実エンコーディング
# Linux / macOS
file Hello.java
# Hello.java: UTF-8 Unicode text
# hexdump 先頭で BOM 確認
xxd Hello.java | head -1
# 00000000: efbb bf70 ... ← BOM 付き
# 00000000: 7061 636b ... ← BOM 無し
# nkf で文字コード判定 (要インストール)
nkf -g Hello.java
# UTF-8
# nkf で変換
nkf -w --overwrite Hello.java # UTF-8 へ
nkf -s --overwrite Hello.java # Shift_JIS へ
Java 18 以降の変更 (JEP 400)
Java 18 から標準 charset がプラットフォーム既定から UTF-8 固定に変わりました:
Charset.defaultCharset()が UTF-8 を返すFileReader/FileWriter/PrintStreamも既定 UTF-8- 旧挙動に戻すには
-Dfile.encoding=COMPAT - 新規プロジェクトは Java 17 LTS / 21 LTS で書くのが安全
FAQ
Q: ? に化けてしまったソースを救えるか
A: 一度文字情報が失われたら復元不能。バックアップから取り直すか、再入力。
Q: log4j / System.out で文字化け
A: ログ設定ファイルに charset 指定、コンソールアペンダのエンコーディングを UTF-8 に。
Q: war 内の properties が化ける
A: maven-resources-plugin の encoding を UTF-8 に。ResourceBundle は Java 9 以降 UTF-8 がデフォルト。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- java.lang.NoSuchMethodError
- java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
- java.lang.UnsupportedClassVersionError
- version less than X.X is not supported.
- パッケージ~は存在しません
- org.apache.jasper.JasperException: ...The jsp:param action must not be...
- java.io.FileNotFoundException: ファイル名 (許可がありません)
- java.sql.SQLException: Cannot convert value 'YYYY-MM-DD ...' from column n(YYYY-MM-DD ...) to TIMESTAMP.
- 警告: この文字は、エンコーディング[文字コード]にマップできません
- java.text.ParseException: Unparseable date
- Unsupported major.minor version 52.0
- エンティティ" ... "への参照は';'デリミタで終了する必要があります。
- java.math.BigDecimal cannot be cast to java.lang.String
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?