2008年10月06日

Shift-JIS でファイルを書き出す

前回も書いたけれど、Visual Basic 2008にはVB6.0と違って内部コードがUTF-8になっている
そのことは、UTF-8で提供されることが多い、Web ServiceとかAPIとか言われるものを使う時には便利なんですが、困るのは、携帯用とかMobileでもでShift-jis でホームページを作るためにVisual Basic 2008でファイルを出力したい場合が困る。
それで、テンプレートはUTF-8でもよいけれど、読み込んで加工して
たとえば
HTML = "<title>{Title}</title>"
というhtmlがあって、タイトルにVB2008と入れたいとかだと
HTML=Replace("HTML","{Title}","VB2008")
などとVB内部で加工していきます
それをSift-JIS で書き出したいときに
 Dim TextFile As IO.StreamWriter

        TextFile = New IO.StreamWriter(DirectoryPath & WriteFileName, False, System.Text.Encoding.GetEncoding("Shift-JIS"))
        TextFile.Write(HTML)
        TextFile.Close()

とか書くと、Shift-JISで書き出されます
TextFile = New IO.StreamWriter(DirectoryPath & WriteFileName, False, System.Text.Encoding.GetEncoding("Shift-JIS"))
部分を
TextFile = New IO.StreamWriter(DirectoryPath & WriteFileName)

だと
Visual Basic 2008 はUTF-8で書き出してくれます

ちょっとそれますが、FomaとかでXHTMLと認識してもらうのにはまったので、VBで書き出したヘッダだけのせておきます

Mobile Adsenseを使って見たかったので、拡張子をphpにしたのでと
サーバーがヘッダで、xmlを送ってくれないので苦労しました。

<?php
header('Content-Type: application/xhtml+xml; charset=Shift_JIS');
echo '<?xml version="1.0" encoding="Shift_JIS"?>'."\n"
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<title>VB2008</title>
</head>



posted by kiyo at 20:41| VB2008の文字コード | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。