C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[2]: 文字化け
(過去ログ 61 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 3 記事 (1 - 3 表示)] <<
0
>>
■35379
/ inTopicNo.1)
文字化け
▼
■
□投稿者/ ryou
(1回)-(2009/04/28(Tue) 11:05:19)
分類:[C/C++]
環境:vc++ 2008 Express Edition
CreateFile()でファイルを新しく作成して、WriteFile()で書き込む処理をしています。
ビルドを行うと、「1 番目の引数を 'const char [9]' から 'LPCWSTR' に変換できません」と
エラーが出るのでファイル名を(LPCWSTR)でキャストをしたところ、実行することができました。
しかし、ファイル名が文字化けしてしまうのです。色々調べてみたところ、LPCWSTRでキャストをしていることが
原因である分かりました。そこで、質問なのですが、ファイル名(text.txt)を文字化けせずに実行する方法ありませんか?
引用返信
編集キー/
編集
■35380
/ inTopicNo.2)
Re[1]: 文字化け
▲
▼
■
□投稿者/ Blue
(10回)-(2009/04/28(Tue) 11:17:17)
・TCHARをつかう
・CreateFileではなくCreateFileAをつかう
・文字セットを「Unicode」から「マルチバイト」に変更する。
なんで文字化けするかは、Shift_JIS文字コードの羅列を無理やりUnicodeに変換するためです。
例)
char path[] = "test.txt";
↓
0x74 0x65 0x73 0x74 0x2e 0x74 0x78 0x74 0x00
↓
LPCWSTRでキャスト
↓
0x7465 0x7374 0x2e74 0x7874 0x00??
引用返信
編集キー/
編集
■35384
/ inTopicNo.3)
Re[2]: 文字化け
▲
▼
■
□投稿者/ ryou
(2回)-(2009/04/28(Tue) 12:35:18)
■
No35380
(Blue さん) に返信
> ・TCHARをつかう
> ・CreateFileではなくCreateFileAをつかう
> ・文字セットを「Unicode」から「マルチバイト」に変更する。
>
>
> なんで文字化けするかは、Shift_JIS文字コードの羅列を無理やりUnicodeに変換するためです。
>
> 例)
> char path[] = "test.txt";
> ↓
> 0x74 0x65 0x73 0x74 0x2e 0x74 0x78 0x74 0x00
> ↓
> LPCWSTRでキャスト
> ↓
> 0x7465 0x7374 0x2e74 0x7874 0x00??
解決しました。
何故の部分にまで言及してくれて
有難うございます。
解決済み
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-