tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル文字化けの解消の仕方
記事No6826
投稿日: 2008/01/13(Sun) 20:31
投稿者だいき
VB2005で

Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        '"client.log"をShift-JISコードとして開く
        Dim sr As New System.IO.StreamReader("C:\Program Files\client.log", _
            System.Text.Encoding.GetEncoding(50222))
        '内容をすべて読み込む
        Dim s As String = sr.ReadToEnd()
        '閉じる
        sr.Close()
        '結果を出力する
        Console.WriteLine(s)
        'テキストファイルを読み込み表示
        RichTextBox1.LoadFile("client.log", RichTextBoxStreamType.PlainText)
    End Sub

として実効させると結果が


2008-01-10 03:20:29.893 Client 繧ィ繝ウ繧ク繝ウ繧定オキ蜍輔@縺セ縺励◆縲・
2008-01-10 03:20:35.847 險ュ螳壹ヵ繧。繧、繝ォ繧

という感じで表示されてしまします。どこを直せばよいのかご指摘、ご教授ください。
お願いします。

文字コードは。932,51932,50220,50221,50222,65001を試しましたが、全て同じ結果でした。

[ツリー表示へ]
タイトルRe: 文字化けの解消の仕方
記事No6828
投稿日: 2008/01/13(Sun) 22:35
投稿者Hongliang
そのファイルがどんなエンコーディングを使用しているかが問題です。
で、その client.log ってファイルが使用しているエンコーディングが不明ってことですか?
化けている部分が本来どういう文字列になるべきかってのはわかりますか?
正常に表示できる環境はありますか?(メモ帳で開けば表示できた、とか)
// なんとなく UTF-7 っぽいけど……?

[ツリー表示へ]
タイトルRe^2: 文字化けの解消の仕方
記事No6829
投稿日: 2008/01/14(Mon) 02:19
投稿者魔界の仮面弁士
>> '"client.log"をShift-JISコードとして開く
ならば、.GetEncoding("Shift_JIS") を指定しましょう。

>> System.Text.Encoding.GetEncoding(50222))
"Shift_JIS" を数値で指定したいなら、932 ですよ。
50222 では、"iso-2022-jp" になってしまいます。

>> 文字コードは。932,51932,50220,50221,50222,65001を試しましたが、全て同じ結果でした。
むやみに指定する前に、元のファイルの文字コードを調べましょう。
バイナリエディタ等で、漢字部分のバイナリ値を調べてみてください。

> // なんとなく UTF-7 っぽいけど……?
UTF-7 系の化け方なら、すべて ASCII の範囲になるような気がします。
どちらかというと、UTF-8 系の文字化けじゃないかな?

[ツリー表示へ]
タイトルRe^3: 文字化けの解消の仕方
記事No6830
投稿日: 2008/01/14(Mon) 05:02
投稿者だいき
Hongliangさん魔界の仮面弁士さん解凍ありがとうございます。UTF-8/7を試してみたのですが、サポートされたエンコード名ではありませんというエラーがでます。
メモ帳等で開けることができたので、UTF-8/7で開けるようにしてみます。

お二人ともありがとうございました。

[ツリー表示へ]