タイトル | : UNICODEをS-JISに変換しDLLに渡す |
記事No | : 8418 |
投稿日 | : 2008/11/16(Sun) 01:56 |
投稿者 | : まつ |
いつもお世話になっております。 VB2005 Windows Vistaで開発しております。
NO.8409で解決した事の1歩先でまた躓いてしまいました。
'カンマ区切りテキストを読み込み、データテーブルに追加 Dim parser As New TextFieldParser(Adress, _ System.Text.Encoding.GetEncoding("Shift_JIS"))
ご教授いただいたとおり、上記の方法でCSVをデータテーブルに取り込み DataGridViewに正しく表示することができました。
そこで問題なのですが、DatagridViewで全半角混合のセルを 漢字はSHIFT JISでDLLに渡さなければならないのですが、 いくらやっても文字化けでこまっております。
文字コードを変換する関数は以下の通りです。
Public Function UniToJIS(UNICODEの変数) as String
'UNICODEをSJISに置き換え Dim Bytes = System.Text.Encoding.UTF8.GetBytes(UNICODEの変数) UniToJIS = System.Text.Encoding.GetEncoding(932).GetString(Bytes) Return
Exit Function
この関数の戻り値をDLLにセットしてもどうしても文字化けしてしまいます。
同じように、TEXTファイルをTextboxに取り込み、上記の方法で TEXTBOXをSHIFTJISに変換し変数に入れているのですが、 これも文字化けです。 取り込んだTextFileをTextBoxに表示までは正しく行えております。
TextFileの取り込みは Dim sr As System.IO.StreamReader = New System.IO.StreamReader( _ OFDialog.FileName, System.Text.Encoding.GetEncoding("Shift_JIS")) 上記方法で行いました。
お分かりになりましたらご教授して頂けないでしょうか。
|