VB6で開発中のシステムで、"MSXML.DOMDocument"のXMLファイルとXSLファイルをtransformNodeメソッドでHTMLファイルを生成して、エクセル2003で開いています。
データの内容によるのですが、日本語がきちんと表示されるときとされないときがあります。
transformNodeメソッドで作成されたHTMLファイルの中身を見てみると
<META http-equiv="Content-Type" content="text/html; charset=UTF-16">
の行で[charset=UTF-16]を[charset=Shift-JIS]に変更するとどちらも問題なく表示されることが分かりました。
HTMLファイルを生成する際に[charset=UTF-16]の部分を[charset=Shift-JIS]に指定する方法は無いでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
当方で検証不能。
関係してそうなところ。
http://www.w3.org/TR/xslt#output
If no encoding attribute is specified, then the XSLT processor should use either UTF-8 or UTF-16.
http://www.w3.org/TR/xslt#section-HTML-Output-Me …
>The encoding attribute specifies the preferred encoding to be used. If there is a HEAD element, then the html output method should add a META element immediately after the start-tag of the HEAD element specifying the character encoding actually used.
以上より
一応俺はXSLTファイルの方を弄って見る。
残念ながら
>日本語がきちんと表示されるときとされない
の境界条件が何かわからない。
本来なら常に化けないのが正しいと思うけどな
#Shift-JISじゃなくてShift_JIS
間違えるとUTF-8だかUTF-16だかとして読み込まれるとかエラーになるとか
そういう感じになると思うので注意。
http://www.iana.org/assignments/character-sets
もし境界条件わかったら
補足なりお礼なりで教えてくれるとうれしい。
himajin100000様
アドバイスありがとうございました。
取り急ぎ"Shift-JIS"を"Shift_JIS"変更して検証してみましたが
状況は変わりませんでした。
引き続き悩んでみます。
No.2
- 回答日時:
この回答への補足
自分が作成しているスタイルシートに
<xsl:output method='xml' version='1.0' encoding='UTF-8' indent='yes' />
の、行が無かったので追加して試したところ"transformNodeToObject"でのエラーは無くなったが、Excelで開いたときに、<Title>タグが認識されない内容のエラーが出て開けなくなりました。
でも、これは当然なのかもしれないです。
スタイルシートで出力形式にXMLを指定しているし"strHtml=objOut.XML"で、XMLファイルを出力するようにしているし...
で、スタイルシートでの出力形式に"html"って指定したらHTMLファイルが出力されるんじゃないかな?と思っていやってみたところ、ブラウザでは普通に開けたが、"transformNodeToObject"で「認識されない文字が有る」と言ってエラーになりました。
なんか八方ふさがりな感じです。
himajin100000 様
アドバイスありがとうございます。
早速
>http://www.tek-tips.com/viewthread.cfm?qid=13797 …
へ、行って見ました。
ここで質問されている内容は、言語が"javascript"で、変換したい文字コードが"UTF-8"であることを除いてほぼ同じです。
質問者もアドバイス通りやっていたら成功している様子です。
なのでJAVAスクリプトをVBの構文に置き換え下記のようにコーディングしてみました。
Dim objXml As Object
Dim objXsl As Object
Dim objOut As Object
Dim strHtml As String
GF_booSetToExcelWorkSheet = False
On Error GoTo ERR_PROC
Set objXml = CreateObject("MSXML.DOMDocument")
objXml.async = False
objXml.Load a_strXmlFile & "\" & FILENAME_CABLEMANAGE & ".xml"
Set objXsl = CreateObject("MSXML.DOMDocument")
objXsl.async = False
objXsl.Load a_strXmlFile & "\" & FILENAME_CABLEMANAGE & ".xsl"
Set objOut = CreateObject("MSXML.DOMDocument")
objOut.async = False
objXml.transformNodeToObject objXsl, objOut
strHtml = objOut.XML
ERR_PROC:
ところが、"objXml.transformNodeToObject objXsl, objOut"
の、ところでエラーになり"ERR_PROC"に飛んでしまいます。
ますますわからなくなりました。
ちなみに"msxml6.dll"を参照しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- PHP Content-Typeが機能していない? 2 2022/07/17 11:10
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- HTML・CSS <!DOCTYPE html> <html> <head> <meta charset="utf-8 2 2023/01/05 01:04
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- HTML・CSS flex の各子要素を横幅 100% にしたい 1 2022/09/22 21:25
- HTML・CSS CSSが上手く反映されないみたいです 2 2022/11/21 16:19
- PHP PHPプログラムの間違い 1 2022/10/06 14:33
- PHP php ログイン 1 2022/11/01 00:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Excel VBA】取り込んだファイ...
-
C++によるファイル送受信プログ...
-
HTMLまたはJavaScriptでフ...
-
HTMLテキストリンクでExcelファ...
-
C++.NET 2003 「空のドキュメ...
-
CSV名と同じシートを選択して取...
-
midi,mp3のBGM音楽ファイルが再...
-
JavaでPDFファイルに変換するに...
-
リンク先がjspファイルなのです...
-
main関数のコマンドライン引数...
-
BASP21のファイルアップロード...
-
vbaの構文の修正相談(xmlファ...
-
C#で文字列リソースを扱う
-
AVIStreamWriteの使用方法
-
ファイル作成日時と更新日時を...
-
Eclipseで検索ができなくなった
-
0バイトのテキストファイル
-
CSVファイルの時刻の形式について
-
accessでクエリをExcelにエクス...
-
コマンドプロンプトのテキスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel VBA】取り込んだファイ...
-
0バイトのテキストファイル
-
VBAで、JPG写真の撮影日時を読...
-
HTMLテキストリンクでExcelファ...
-
Eclipseで検索ができなくなった
-
VB6.0のメモリリークについて
-
main関数のコマンドライン引数...
-
2GB以上のファイルを扱う方法
-
サイトマップにサブドメインを...
-
ファイル更新日取得
-
ファイル作成日時と更新日時を...
-
エディットボックスの内容をテ...
-
【VBA】印刷マクロのループ処理...
-
<input type="file" で初期値...
-
【VBA】複数CSVの特定範囲を1つ...
-
C++によるファイル送受信プログ...
-
GetOpenFileName()について
-
VB2008 iniファイルの全セクシ...
-
ファイル内容を比較する方法
-
IMEのモードを強制的に変えるには
おすすめ情報