ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
UTF-8
UTF-8
17
maven-compiler-plugin
3.11.0
UTF-8
maven-resources-plugin
UTF-8
対処 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().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アノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?