HTMファイル作成での不具合を回避するには?

解決


xyz  2004-02-12 11:38:46  No: 111786  IP: [192.*.*.*]

----------------------------------------------------------------------
Dim CellData As DataRow = DataSet11.AddImage.Rows(i)
GetPath(i) = CellData("Path")
GetSequence(i) = CellData("Sequence")
GetFileName(i) = CellData("FileName")
GetTitle(i) = CellData("Title")
GetComment(i) = CellData("Comment")

' Serverへファイルコピー
System.IO.File.Delete(IntraPath & "\" & GetSequence(i) & ".jpg")
Dim BeforeCopy As String = GetPath(i) & "\" & GetFileName(i)
Dim AfterCopy As String = IntraPath & "\" & GetSequence(i) & ".jpg"
System.IO.File.Copy(BeforeCopy, AfterCopy)

' HTMLファイルの中身の作成
strHtml = "<HTML>" & vbCrLf
strHtml = strHtml & "<HEAD><Title>" & vbCrLf
strHtml = strHtml & GetTitle(i) & vbCrLf
strHtml = strHtml & "</Title></HEAD>" & vbCrLf
strHtml = strHtml & "<Body>" & vbCrLf
strHtml = strHtml & "<Center>" & vbCrLf
strHtml = strHtml & "<Img Src=" & """" & GetSequence(i) & ".jpg" & """" & " > " & vbCrLf
strHtml = strHtml & "</Center>" & vbCrLf
strHtml = strHtml & "<HR>" & vbCrLf
strHtml = strHtml & "<Pre>" & vbCrLf
strHtml = strHtml & GetComment(i) & vbCrLf
strHtml = strHtml & "</Pre>" & vbCrLf
strHtml = strHtml & "</Body>" & vbCrLf
strHtml = strHtml & "</HTML>"

Dim strPath As String
Dim myWriter As StreamWriter
Dim myFileInfo As New System.IO.FileInfo(ExePath)
strPath = Listpath & "\" & GetSequence(i) & ".htm"

'HTMLファイルを作成します。
myWriter = New StreamWriter(strPath)
myWriter.Write(strHtml)
myWriter.Close()
----------------------------------------------------------------------
作成されたHTMファイルのソースを見てみると
ちゃんとAccessのDBからデータを読み取り、HTMファイルに書き込んでいます。
しかしHTMファイルを開くとタイトル・コメントが正しく表示されません。
文字化けしてしまっています。

現在までで試したこと。
①中のソースをコピーして新しくメモ帳か何かに貼り付けて拡張子をHTMにすると表示されました。(ソースはおかしいわけではありません)
②ローカルにHTMファイルを作成してサーバーへコピー。
③ローカルにテキストファイルを作成してサーバーにコピーする際にHTMへ拡張子を変換する。

以上です。

どうか宜しくお願い致します。

編集 削除
魔界の仮面弁士  2004-02-12 11:58:23  No: 111787  IP: [192.*.*.*]

> myWriter = New StreamWriter(strPath)
エンコーディング指定の無いコンストラクタなので、文字コードはUTF-8ですね。

> strHtml = "<HTML>" & vbCrLf
> strHtml = strHtml & "<HEAD><Title>" & vbCrLf
> strHtml = strHtml & GetTitle(i) & vbCrLf
> strHtml = strHtml & "</Title></HEAD>" & vbCrLf
meta要素で、Content-Typeとして"text/html; charset=UTF-8"を出力してみては如何でしょう。

編集 削除
xyz  2004-02-12 13:18:11  No: 111788  IP: [192.*.*.*]

魔界の仮面弁士さん、ありがとうございました。

metaタグで見事に表示できました。
本当に助かりました。ありがとうございます。

編集 削除