掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
UTF8のデータをASPに表示 (ID:139690)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
まず、先の投稿の訂正。 >> Option Strict を宣言する事をお薦めします。 これは、"Option Strict" ではなく、"Option Explicit" の間違いです。m(_ _)m > 魔界の仮面弁士様 よろしくお願いします。 私なんぞよりも、MySQL の専門家に尋ねるべき範囲ですよ…? (^_^;) VB や ASP の範囲であればお答えできますが、私は、MySQL に関しては素人ですし。 ADO 側の 動的プロパティや、ODBC ドライバの設定、あるいは MySQL 自身の設定で 解決できる物なのか、それともそもそも解決方法が無い(Shift_JIS として処理するしか無い) 問題なのかすら、今の私には判断できません。 とりあえず、別の ODBC ドライバの場合はどうなるのでしょうか? たとえば…。 http://www.datadirect.co.jp/ それから—— ASP を介さず、ODBC + Unicode 対応ソフト(Microsoft Access 等)などでの 表示はできているのでしょうか。それが出来ていないのであれば、MySQL あるいは ODBC 固有の 問題の可能性が非常に高いので、ここで質問するのは、あまり望ましくないようにも思えます。 もし、それが出来ていて、ASP だけで化けてしまうという状況であるならば、VBS/ASP 側の 問題とも考えられるので、ここで続ける事には何の問題も無いと思います。 ただ、ここの掲示板で MySQL に詳しい VB 開発者の登場を待つことを止めはしませんが、 過去の MySQL + UTF-8 系の質問に対する回答状況を鑑みると、MySQL 系のコミュニティに 移動されるとか(よく知りませんが、www.mysql.gr.jp とか?)、MySQL + UTF-8 + ASP の 組合せを経験している開発業者やコンサルを探すなどした方が、解決への近道な気もします。 (それで本当に解決できるのかどうかは別として) > ASP のソースファイルはUTF-8(BOM付き)で保存しており、IISは6.0です。 であれば、その点に関しては問題ないと思います。 >> あとは、Session.CodePage がどうなっているのか、とか。 > 特に指定はしていませんでした。UTF8が必要なんでしょうか? Session.CodePage の既定値は、@ CODEPAGE ディレクティブの値ですので、 未設定であればそれでも構いません。これはたとえば、ソース自体は UTF-8 でも http://server/getCSV.asp?type=Shift_JIS http://server/getCSV.asp?type=UTF-8 などのようにして、「条件によって、別の文字コードで Response.Write するページ」を 作りたいような場合などに使われる機能です。 そしてこの設定は、セッション単位で有効なので、もし他の asp ページで設定されていた場合、 それらが引き継がれている可能性がある事に注意が必要です。 > 訂正)テーブルの値(地方:E59CB0E696B9)が、ASPでは(蝨ー譁ケ:E59CB0E696B9)です。 最後の B9 は欠けてはいないのですね? であれば、バイナリとして受け取った上で、 それを ADODB.Stream 等で変換することで、無理やりに読みとれる可能性はありますね。 ただし、「Shitt_JIS で定義されていない範囲のバイナリ」が含まれるような UTF-8 データが返される場合について、十分にチェックしておく必要があるでしょう。 > 私が1文字毎の方が分かりやすいかと勝手に-を付加していました。 あ、それは勿論わかっています。その方が読みやすいですね。 >>> <?xml version="1.0" encoding="UTF-8"?> >>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> > 上記2点は、特に必要ないということでしょうか? …必要あるかどうかは、こちらでは判断のしようが無いところです。 DOCTYPE 宣言に合わせて内容を修正すべきなのか、それとも DOCTYPE を修正すべきか あるいは DOCTYPE 自体を除去するべきかは、そちらのシステムの仕様次第でしょうから、 分からないのであれば、当時の開発担当者に連絡を取って確認すべき事柄かと。 たとえば IE6 と IE7 と IE8β とでは、DOCTYPE の有無によって、レンダリングモードが 変化しますし、また、XML 宣言を付けるべきかどうかも異なってきます。 そうしたアプリ側の仕様を無視して、HTML / XHTML 文書自体の文法だけで話して良いのであれば、 DOCTYPE は本来必須です(多くのブラウザが、無い場合は独自判断で処理してくれますが)ので、 できれば削除すべきでは無いでしょう。別のDOCTYPE宣言に変える可能性はあるかも知れませんが。 そして DOCTYPE を付けた以上、「この文書は、正しい文法で記述されていますよ」という 意思表示であり、その中でも、厳密性の高い XHTML 1.0 Strict が選択されているのですから、 不適切な HTML 構造を書くのはよろしく無いでしょう。 http://www.atmarkit.co.jp/fxml/askxmlexpert/022xhtml/22xhtml.html 出来上がったサイト(ASP の実行結果)を http://openlab.ring.gr.jp/k16/htmllint/htmllint.html に書けて、文法チェックを行われる事をお薦めします。 なお、XML 宣言の前に改行を入れないというのは、たとえば <% @ CodePage="65001" Language="VBScript" %> <?xml version="1.0" encoding="UTF-8"?> ではなく、 <% @ CodePage="65001" Language="VBScript" %><?xml version="1.0" encoding="UTF-8"?> としなければならない、という事です。 また、Option Explicit 宣言を付ける場合、それはたとえば <% @ CodePage="65001" Language="VBScript" %><%Option Explicit %><?xml version="1.0" encoding="UTF-8"?> などのようにすることができます。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.