java初心者です。
C++ソースからCreateProcess関数を用いてjava.exeを起動し、アプリケーションを起動させるアプリケーションを作成しています。
現在、java側で日本語が文字化けしてしまい、期待する動作が得られていません。
具体的には起動するjavaアプリケーションに引数としてパスを渡しており、そのパスに
日本語が含まれていると文字化けにより解釈できないという状況です。
日本語がアプリケーション内部で正しく利用できるようにはどのようにすれば良いでしょうか。
環境は以下の通りです。
※情報が足りない等ありましたらお願い致します。。
OS:WindowsXP
C++の開発環境:VC6
CreateProcess関数起動時の文字コード:UTF8
java開発環境:eclipse3.5
javaの引数はStringで受けるのですが、java内部ではUTF16らしいので、UTF8で記述された
文字列をUTF16として読むため文字化けしているのかなと調べた結果推測しています。
だとすると、java側で引数で受けた文字列をUTF-8からUTF-16に変換すれば良いのかなと
考えています。
ではその場合どのような処理が必要になるのでしょうか。(String#getBytes()を使う?)
後、javaコンパイル時にエンコードを指定するという方法もあるようですが、その方法は
他へ影響が大きいため、利用できそうにありません。
情報が足りない等あればお願い致します。
ご回答よろしくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
> 多言語環境でも動作する必要があります。
だとすると
・渡す文字列をC++アプリケーションでURLエンコードしてからJavaアプリケーションに引数として渡し、Java側でデコードする
または、Javaのコマンドライン引数として文字列を渡すのはやめて
・C++アプリケーションとJavaアプリケーションの間でプロセス間通信(パイプなど)で文字列を渡す
・渡す文字列をC++アプリケーションからファイルに書き出し、それをJavaアプリケーション側で読み出す
などのダサい方法で実装したほうが確実かもしれません。
No.2
- 回答日時:
Windows用のJavaは、日本語環境ではMS932をデフォルトエンコーディングとして動作します。
決め打ちになってしまいますがJavaプロセスを起動するときに文字列をUTF8ではなくてMS932で渡すことはできませんか?ご回答ありがとうございます。
言葉足らずで申し訳なかったのですが
多言語環境でも動作する必要があります。
ですので動作環境を日本語環境に限定してしまう方法では対応できません。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- その他(プログラミング・Web制作) Pythonの作業環境・作業フォルダの迅速な設定・指定方法 3 2022/04/01 07:55
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Java mac mini 2009 でのmac OS における Java の入れ替えについて 1 2022/12/27 19:23
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java javaで質問です。 文字列2023/2/3(一桁の場合、0埋めなし)の場合にyyyyMMddに変換 3 2023/02/20 11:30
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
Javaの種類ってどんだけあるの?
-
テキストボックスへの入力に対...
-
Pythonを勉強する道のり
-
Eclipseソース開発画面の行番号...
-
UWSCが、動作環境の違いで動か...
-
大学の授業のプログラミング、...
-
サーブレットで電卓をつくる
-
javaのジェネリックスでTとEの...
-
WindowsでのOvjective-C開発環境
-
スキル高めのIT技術者になぜ左...
-
Javaでのエラーについて
-
gitでバージョン指定してダウン...
-
今年30歳、業務未経験がプロ...
-
エクセルVBAがMACで動かない
-
HDD Health 2.1を入手したい
-
JAVA言語をマスターするとホー...
-
超初心者のJAVA入門(学生)
-
占いサイトを作りたいのですが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vba クリップボードクリアにつ...
-
IISワーカープロセスが原因でCP...
-
VBのWPFとはなんでしょうか?
-
unzip32.dllの利用について(64b...
-
プラグインとパッチの違いは?
-
意味が分からないエラー
-
帳票出力について
-
java3dが動かない
-
32ビットのアプリで、64ビットO...
-
ASP(VB).NETでの背景色変更
-
ログオフ中でもアプリケーショ...
-
C#のメモリマップドファイルに...
-
AccessとVBの違いについて
-
Java でネイティブアプリケーシ...
-
このVBAでExcelアプリケーショ...
-
HTMLアプリケーションの作成
-
[VB.2005]クライアントからWEB...
-
C++からC#へ
-
JAVAプログラムをWEB表示させる...
-
SurfaceViewの一時停止や再開方法
おすすめ情報