Personal tools
Document Actions

Writing XML by ASP in Japanese

by Days posted at 2006-07-31 23:31 last modified 2006-07-31 23:35
iTunesのPodcast向けにRSSを書いているのだが、日々の運用のためにこれをASPで出力することにした。DBにitemを書き込んでもらい、それをまとめてRSSに書き出すのだ。
で、ASPはS-JIS、XMLはUTF-8で日本語を書くので、ちょっとした工夫が必要。
dim resp
resp = resp & "<?xml version=""1.0"" encoding=""UTF-8""?>" & vblf
resp = resp & "<rss xmlns:itunes=""http://www.itunes.com/dtds/podcast-1.0.dtd"" version=""2.0""?>" & vblf
resp = resp & "<channel>" & vblf
resp = resp & "<title>ホアランポーンからのポッドキャスト</title>" & vblf
...
resp = resp & "</channel?>" & vblf
resp = resp & "</rss?>" & vblf
などと、"resp"に必要な文字列をS-JISで入れておく。もちろんDBからの出力文字列を織り交ぜるのもOK(のはず)。RSS自体の書き方は、"PodcastingとiTunes: 技術仕様" をご参照。

変換にはADODB.Streamを使う。
Set iStream = Server.CreateObject("ADODB.Stream")
function ConvUTF(strValue)
	call iStream.Open
	iStream.Position = 0
	iStream.SetEOS
	iStream.Type = 2
	iStream.Charset = "utf-8"
	iStream.WriteText strValue
	iStream.Position = 0
	iStream.Type = 1
	iStream.Position = 3
	ConvCharset = iStream.Read()
	call iStream.Close
end function
Set iStream = Nothing

Response.ContentType = "text/xml"
Response.Charset= "utf-8"
Response.BinaryWrite ConvUTF(resp)
という感じ。
ASPスクリプトそのものをUTF-8で書いて、response.writeしても文字化けの嵐だったので、このようにした次第。
Category(s):
仕事の周辺
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
(Required)

« February 2012 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29