- Published on
Java \u3000'は不正な文字です の原因と解決法
880文字2分で読めます–––
閲覧数
- Authors
- Name
- Shou Arisaka nyapp.buzz/shou
- short bio
- Z世代の情報技術者。Next.jsで自作SNSを個人開発中。
Javaで、コピペしたコードを貼り付けて、javacすると、こういうエラーが。
PS C:\pg\java> javac .\Wind.java
.\Wind.java:6: エラー: この文字は、エンコーディングMS932にマップできません
frame.setSize(850,700); 縲?縲?縲?縲?縲?縲?縲?縲? 縲?//
.\Wind.java:6: エラー: 文ではありません
frame.setSize(850,700); 縲?縲?縲?縲?縲?縲?縲?縲? 縲?//
^
ファイルの文字コードはちゃんとUTF-8だし、BOMがついてるとかもないし…
調べてみると、文字コードを指定してエンコードするとよさそう。
PS C:\pg\java> javac -encoding UTF-8 .\Wind.java
.\Wind.java:6: エラー: '\u3000'は不正な文字です
frame.setSize(850,700); //
あれれ。
前述のエラーはでなくなったけど、新しいエラーが。
調べてみると、\u3000
は全角空白らしい。なるほど。
Atomで正規表現を有効にして、\u3000
を置換してみる。
改めて、
PS C:\pg\java> javac -encoding UTF-8 .\Wind.java
できました。
文字コード指定しなくてもできんじゃね?
PS C:\pg\java> javac .\Wind.java
できた。
いっぱいそういう文字を含んだファイルが有る場合は、sedなんかでまとめて置換すると良いと思う。
といってもソースの中に日本語を含む場合は、文字化けを防ぐためにビルドするときに前述のオプションを付ける必要がある。
javac -encoding UTF-8 .\Wind.java
15歳でWordPressサイトを立ち上げ、ウェブ領域に足を踏み入れる。翌年にはRuby on Railsを用いたマイクロサービス開発に着手し、現在はデジタル庁を支えたNext.jsによるHP作成やSaaS開発のプロジェクトに携わりながら、React.js・Node.js・TypeScriptによるモダンなウェブアプリの個人開発を趣味でも行う。
フロントエンドからバックエンドまで一貫したアジャイルなフルスタック開発を得意とし、ウェブマーケティングや広告デザインも必要に応じて担当、広告運用・SEO対策・データ分析まで行う低コストかつ高品質な顧客体験の提供が好評。
国内外から200万人を超える人々に支えられ、9周年を迎えるITブログ「yuipro」の開発者、デザイナーでありライター。現在ベータ段階の自作SNS「nyapp.buzz」を日本一の国産SNSとするべく奮闘中。
何かご質問がありますか?