• 締切済み

基本的なことですがXML宣言について教えてください。

XHTMLでホームページを作成しようと、 <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> から書き始めているのですが、画面上では文字化けしないものの、メールフォームなどに受け渡しをするとどうしても文字化けがおこり、直りません。 ホームページのトップページにフォームを設置して、そこまで普通に文字化けもせずに表示されますが、確認ボタンを押すと画面全てが文字化けします。 CGIを考慮してShift-Jisで作成をしていますが、どうしてでしょうか? 他に宣言される場所とかあるのでしょうか? 何かいいアドバイスがあればご教授下さい。 宜しくお願いします。

みんなの回答

  • mha01
  • ベストアンサー率81% (9/11)
回答No.2

自分の端末では文字化けしないのにネットを経由すると文字化けする理由は以下のサイトを熟読すれば理解できますが、UNICODEがデフォのXMLで、いまだにShift_JISに執着してもメリットないと思いますけど。 http://www.atmarkit.co.jp/fxml/rensai/w3cread38/w3cread38_2.html ”ファイルシステムやネットワークプロトコルが、符号化方式の情報を持つことがある。 符号化宣言よりもプロトコルが指定する符号化の指定を優先すべきだろう。なぜなら、通信システムの都合で符号化方式の変換が発生した場合、プロトコルに含まれる符号化方式は正しい情報を含んでいる可能性が高いからである。 一方、符号化宣言を扱わないシステムにより変換が行われた場合、符号化宣言は現状に合致しない符号化方式を示している可能性があり得る。”

mika_0209
質問者

補足

アドバイスを頂きありがとう御座います。 >UNICODEがデフォのXMLで、いまだにShift_JISに執着してもメリットないと思いますけど。 私の場合仕事でホームページを作っているのではなく、たまに人に頼まれて作る程度なんですけど、いつもはSmartyを使ってます。 今回は使いたいフリーのCGIがコードShift-JISで作られているため仕方なくって感じです。 私自身そんなに詳しくもなく、趣味程度な物で困ったりもしてます。 でも、教えていただいたサイトを参考にしたいと思います。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

宣言に問題はないので、作成したページ自体の文字コードがShift_JISで間違っていないとすると、CGIの問題でしょうね。

関連するQ&A