タイトル : UNICODEをS-JISに変換しDLLに渡す 投稿日 : 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")) 上記方法で行いました。 お分かりになりましたらご教授して頂けないでしょうか。 |