SJIS→EUC 変換について – プログラミング – Home

通知
すべてクリア

[解決済] SJIS→EUC 変換について


たき
 たき
(@たき)
ゲスト
結合: 24年前
投稿: 10
Topic starter  

こんばんわ。いつもログにはお世話になっています。
たきと申します。

CString sql_cmd = insert into DB ( column ) values ( ;
sql_cmd += \";
1. sql_cmd += らりるれろ;
sql_cmd += \ );

// SJISをEUCに変換してくれる(コピペしました^^:)
sql_cmd=SJIStoEUC(sql_cmd);

2. AfxMessageBox( sql_cmd );

// EUCをSJISに変換してくれる(コピペしました^^:)
AfxMessageBox( EUCtoSJIS( sql_cmd ) );

このようなソースで2.に期待していた文字(insert into DB ( column ) values (らりるれ
ろのEUC文字) )が表示されませんでした。後ろのが抜けてしまったです。
そのため不完全なSQL文になってしまい、困っています。

1.をあいうえおにするとうまく表示できました。

開発環境はWin2000 MFCです。
VC初心者ですがよろしくおねがいします。


引用未解決
トピックタグ
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

この文章を書いていて問題点があるとしたらSJIStoEUC()が
可能性として一番問題がありそうだとは思いませんでしたか?
自作関数か何かだろうけど、これを提示しないと誰も答えられないと思うよ

下記はEUCコードとVCでの表示についてです
ダブルクオーテーションがあるか無いかはバイナリで見たと思うけど
本当に0x22が無いのを確認しました?
ちょっと試したところ、らりるれろをEUCにしてVCでそのまま表示させると
0xa4、(半角)
0xe9鬢
0xa4
0xea熙
0xa4
0xeb・(私のマシンではフォント無し)
0xa4
0xec・(私のマシンではフォント無し)
0xa4
0xed・(私のマシンではフォント無し)
0x22
0x00
こんな表示になりますが、コード上では問題ないと思うけど
VCで文字をそのまま見ようと思っても、コードの右のやつが表示されていると思うよ


返信引用
ku
 ku
(@ku)
ゲスト
結合: 25年前
投稿: 312
 

しまった、よく見たら二つの関数を使っているのね
書かなくても想像ついていると思うけど
SJIStoEUC()でEUCに変換したときに間違っているか
EUCtoSJIS()でSJISに変換したときに間違っているか
のどちらかです


返信引用
たき
 たき
(@たき)
ゲスト
結合: 24年前
投稿: 10
Topic starter  

レスおそくなって申し訳ありません。

結果から言えば解決しました。

SJIStoEUC()、EUCtoSJIS()に関してはHPからのコピペで一切手は加えていないので
大丈夫だとおもいます。変換後の16進数で表示したものは期待通りの結果になってました。

なにがいけなかったかというと、みてのとおりSQLコマンド作成しています。
その使用しているデータソースの設定がEUCになっていてそこをSJISに変えたら
期待通りの結果が返ってきました。
細かいことは良くわからないのですが、とりあえずこれで解決とさせていただきます。

即レスくれたkuありがとうございました。


返信引用
たき
 たき
(@たき)
ゲスト
結合: 24年前
投稿: 10
Topic starter  

すいません。「さん」が抜けてました。
大変失礼しました。_(._.)_

即レスくれたkuさんありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました