w3cの使い方:警告が表示される原因と対処法

このQ&Aのポイント
  • w3cの使い方について調査しました。特定の文字エンコーディングの問題から警告が表示され、正常に検査できない場合があります。
  • 警告の内容は、ファイルの特定の行にシフト_jisとして解釈できないバイトが含まれていることです。
  • 問題の解決策としては、ファイルの内容と文字エンコーディングを確認し、問題の行を修正する必要があります。また、別のHTMLチェッカーを使用しても同様のエラーが発生する場合もあります。
回答を見る
  • ベストアンサー

w3cの使い方について

よろしくお願いします。 先日、以下のURLよりサイトのチェックをしました。 http://validator.w3.org/ したところ、以下のように警告が表示されました。 Sorry, I am unable to validate this document because on line 1185 it contained one or more bytes that I cannot interpret as shift_jis (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication. The error was: shiftjis "\x87" does not map to Unicode 上記を日本語に翻訳したところ、以下のように表示されました。 すみません、それが系列1185に私がシフト_jisとして解釈できない1バイト以上を含んだので(言い換えれば、見つけられたバイトは、指定されたキャラクターEncodingの有効値ではありません)、私はこのドキュメントを有効にすることができません。 ファイルの中身と文字符号化指示の両方をチェックしてください。 誤りは以下の通りでした。 」 雌ジカがユニコードに写像しない"shiftjis"\x87 ためしに、ソースの1185行目を削除して再度、w3cの検査をしてみたのですが、今度は1185といった部分が、1175等と表示されて、やはり警告が出てしまいました。 http://openlab.ring.gr.jp/k16/htmllint/htmllint.html 上記のhtmlチェッカーで検査をしてみると、その評価は、よくできました。と表示されるのですが、w3cで検査してみると、何らかのエラーが出てしまいます。 原因が分からずに困っております。 どなた様か、ご指導の程よろしくお願いします。

  • pcckit
  • お礼率76% (472/621)

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

ちょっと調べると, 「シフトJIS には存在するけど Unicode に変換できない (正確にいうと「シフトJIS から Unicode への変換表に存在しない」) 文字」がいくつかあるようです. 1185行目に, そのような文字が何かしら存在するのではないでしょうか? ○つきの数字などはこれによく引っ掛かるので注意してみてください.

参考URL:
http://charset.7jp.net/sjis.html
pcckit
質問者

お礼

Tacosan様 ありがとう御座いました。 1185行目にIIIという記述があり、それを3にしたところ 警告が出なくなりました。 1175行目についても、同じような数字があり、修正したところ 正常に審査が通りました。 この度はありがとう御座いました。

関連するQ&A

  • w3cについて

    よろしくお願いします。 以下の記述がしてあるhtmlファイルを以下のサイトよりチェツクをしました。 <ul class="ulfont"> <li>インターネット</li> <li>プリンターIII</li> <li>パソコン</li> </ul> http://validator.w3.org/ したところ、以下のような警告が出ました。 Sorry, I am unable to validate this document because on line 1180 it contained one or more bytes that I cannot interpret as shift_jis (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication. The error was: shiftjis "\x87" does not map to Unicode 上記を日本語にしたところ、下記のように表示されました。 すみません、それが系列1180に私がシフト_jisとして解釈できない1バイト以上を含んだので(言い換えれば、見つけられたバイトは、指定されたキャラクターEncodingの有効値ではありません)、私はこのドキュメントを有効にすることができません。 ファイルの中身と文字符号化指示の両方をチェックしてください。 誤りは以下の通りでした。 」 雌ジカがユニコードに写像しない"shiftjis"\x87 どうやら1180行目に何らかのエラーが出ているようなので 1180行目に該当する以下の項目を <li>プリンターIII</li> 以下のように修正しました。 <li>プリンター3</li> サーバーにアップしてブラウザ上で見ると、修正した箇所はきちんと表示されているのですが、これをhttp://validator.w3.org/でチェックしてみると、やはり同じエラーが出てきます。 そして、次にhtmlチェツカーに駆けてみたのですが、やはり修正した箇所は反映されておらず、テスト的に<li>プリンター3</li>の部分を <li>プリンター3テスト</li>と記述してみたのですが、やはりhtmlチェツカー上で反映がされず、修正前の以下のものが反映されてしまいます。<li>プリンターIII</li> htmlチェツカーは以下のサイト様を利用させていただいております。 http://openlab.ring.gr.jp/k16/htmllint/htmllint.html 原因が分からずに困っております。 どなた様か、ご指導の程よろしくお願いします。

    • ベストアンサー
    • HTML
  • w3cの検証エラー?

    サーバーにアップしてあるサイトからw3cのチェックすると下記のようなエラーが出ます。 Sorry! This document can not be checked. Result: Failed validation Address: http://www.hogehoge.com/ Encoding: euc-jp Doctype: Sorry, I am unable to validate this document because on line 179 it contained one or more bytes that I cannot interpret as euc-jp (in other words, the bytes found are not valid values in the specified Character Encoding). Please check both the content of the file and the character encoding indication. The error was: euc-jp "\x83" does not map to Unicode 何が原因なのか全くわかりませんがどのようにしたら検証することができるようになるのでしょうか? Nucleus v3.3でサイトを作ったのでそれが原因かと思い他のNucleusで作られたサイトを見てみましたがエラーになっていませんでした。 html側には <!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" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> ~省略~ としています。 firefoxのhtmlをチェックする機能?ではエラーもなく判定されます。

  • C#(.Net)におけるエンコードのバグ?

    複数のテキストファイルを読み込み、置換などの処理を加えた後に、文字コードはそのままで別名保存するアプリケーションを開発しています。 しかし、Encodingクラスを使って文字コードを変換するところでつまずきました。EUC-JPとShift_JISを変換するときだけ、一定の文字列が文字化け(あるいは脱字)してしまいます。それも必ず化けるわけではないようです。 以下、簡単なチェックの手順です。 まず、下記テキストを含むテキストファイルを作成します。ファイル名は「test1.txt」、文字コードはEUC-JPとします。 ________________________ この文章は処理対象に含まれません。 この文章はダミーです。 この文章はこのファイルが正常に処理されるかどうかをチェックするために含まれています。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 次に、下記コードでテキストファイルを読み込み、別名で保存します。 string Buffer=File.ReadAllText("test1.txt",Encoding.Unicode); Encoding EncodingSrc=Encoding.GetEncoding("euc-jp"); byte[] b=Encoding.Unicode.GetBytes(Buffer); b=Encoding.Convert(EncodingSrc,Encoding.Unicode,b); Buffer=Encoding.Unicode.GetString(b); File.WriteAllText("test2.txt",Buffer,EncodingSrc); すると、「test2.txt」に脱字が発生します。 ________________________ この文章は処理対にれせん。 この文章はダーです。 この文章はこのファイルが正常に処理されるかどうかをチェックするためにれていす。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ かなり回りくどいコードですが、文字コードを取得したり、また元の文字コードに戻したりするためにこうなってしまいました。 代替策でもかまいませんので、ご教授のほど、よろしくお願いします。

  • SJIS→UTF-8の文字コード変換

    Perlで、SJISの16進で表記された文字があるのですが、それがうまく表示できません。 Unicodeの16進文字コードだとうまく表記できるのですが…。 以下がスクリプトです。 以下の場合だと。(句点)がSJISだと0x8142で、 その16進文字列を表示したいのですが、実行結果にあるエラーが出てしまいます。 Unicodeだと。は0x3002なのですが、うまく表示できています。 すみませんがよろしくお願いします。 ---------------------------------------- # このファイルの文字コードはSJIS # 改行コードはLF # # 。 SJIS 0x8142 # Unicode 0x3002 # use Jcode; use encoding "sjis"; $a = 0x8142; $a = Jcode->new($a, "sjis")->utf8; printf("句点の表示…%c\n",$a); printf("句点の表示…%c\n",0x3002); ---------------------------------------- 実行結果 "\x{8142}" does not map to shiftjis at test.pl line 14, <DATA> line 846. 句点の表示…\x{8142} 句点の表示…。

    • ベストアンサー
    • Perl
  • LINUXでSJIS

    こんにちは、redhat linux7.1でshiftJISの環境を作成したいと思います。 現在、いろいろと調べて、 localedef -f SJIS -i ja_JP ja_JP.SJIS とやっていますが、 character map `SHIFT_JIS' is not ASCII compatible, locale not ISO C compliant といったメッセージが出てしまい、うまくいきません。 どうしたらうまくいくようになるのでしょうか?

  • W3CのValidataが通らない。

    <input type ="text" size ="12" id="chg"> <input type ="button" value ="入力したらクリック" onClick ="changecolor('#' + document.getElementById('chg').value);"><br> という構文がW3Cのバリデータでエラーが発生します。 エラー内容は document type does not allow element "INPUT" here; missing one of "P", "H1", "H2", "H3", "H4", "H5", "H6", "PRE", "DIV", "ADDRESS" start-tag. こういったものです。 表示自体はできるのですがなぜ通らないのかわからないです。 なぜこうなるのかよろしければ教えていただきたいです。

    • ベストアンサー
    • HTML
  • 特殊文字のチェックの仕方

    c sharp(vs2010)環境で開発しています。 http://www.shurey.com/js/labo/character2.html ある文字がこの「特殊文字エリア」にあるか確認したくて、 以下のようなコードを描いてみました。 string str = "(株)"; //カッコカブ です。 Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS"); byte[] bytes = sjisEnc.GetBytes(str); 上記のように書いてみたのですが、byte[]の中には135 138が入っており、 8540~889E(10進で34112 - 34974)特殊文字の範囲には入らないようです。 きちんと値が取れれば、範囲内の数になるはずだと思っているのですが、 認識誤り、コードのミスなどありましたらご指摘いただけないでしょうか。 宜しくお願いします。

  • W3CのHTML結果とCSS結果の問題点を改善策を教えてください。

    W3CのHTML結果とCSS結果の問題点を改善策を教えてください。 ●HTML結果 ワーニングが1個になりました。UTF-8を使ったら駄目ということですか??? Passed, 1 warning(s) Using Direct Input mode: UTF-8 character encoding assumed Unlike the “by URI” and “by File Upload” modes, the “Direct Input” mode of the validator provides validated content in the form of characters pasted or typed in the validator's form field. This will automatically make the data UTF-8, and therefore the validator does not need to determine the character encoding of your document, and will ignore any charset information specified. If you notice a discrepancy in detected character encoding between the the “Direct Input” mode and other validator modes, this is likely to be the reason. It is neither a bug in the validator, nor in your document. ●CSS結果 警告が5個出ました。 下記のエラーの改善策がわかりません。助けてください。 ul#topmenu li In (x)HTML+CSS, floated elements need to have a width declared. Only elements with an intrinsic width (html, img, input, textarea, select, or object) are not affected ●CSS ul#topmenu li a {display: block; width: 120px; line-height: 30px; text-decoration: none; text-align: center; color: #ffffff; background-color: #005087; background-image: url(rollover.png); border-right: solid 1px #ffffff}

  • UTF-8で書かれたHTMLファイルをShift-JISのファイルに変換できない

    #!/usr/bin/perl -w =begin comment OS: Windows XP Perl: Active Perl v5.8.8 スクリプトは「Shift-JIS」で書いています。 日本語処理関係で参考にしているのはもっぱらオライリージャパンの「Spidering Hacks」の付録の翻訳者 による日本語処理の解説です。 http://oshiete1.goo.ne.jp/qa3716434.html の回答に従い、use encoding 'shiftjis'; から use encoding 'cp932'; へ変更している以外は そこに書かれているやり方に従っていると思います。 UTF-8で書かれたHTMLファイルを「LWP::UserAgent」で取得し、それを Shift-JISコードで出力したいと思い以下のコードを実行したのですが、 以下のエラーが出てしまいました。 Parsing of undecoded UTF-8 will give garbage when decoding entities at C:/usr/local/site/lib/LWP/Protocol.pm line 114. このエラーは何が原因なのでしょうか? =end comment =cut use strict; use LWP 5.64; use Encode; use encoding 'cp932'; # http://oshiete1.goo.ne.jp/qa3716434.html の回答に従い、'shiftjis'から'cp932'へ変更。 #use encoding 'shiftjis'; binmode(STDERR, ':raw :encoding(shiftjis)'); my $url = "http://www.audiounion.jp/bin/products/used/A0/-/-/"; my $browser = LWP::UserAgent->new; my $response = $browser->get( $url ); die "cannot get $url:", $response->status_line unless $response->is_success; my $content = Encode::decode('utf8', $response->content); print $content;

  • メモ帳で文字コードの警告がでます。

    メモ帳で文字コードの警告がでます。 メモ帳でシフト+JISコード形式のHTMLホームページ(日本語)を作っています。 C:\Users\個人ユーザー名\Documents\サイト名\フォルダ\ファイル名.htmlですが、 上書きをしようとすると<このファイルは、ANSIテキストファイルとして保存すると失われてしまうUnicode形式の文字を含んでいます。Unicodeの情報を保存するには、・・・>と あります。 プルダウンメニューからとりあえず「Unicode」を選択して上書き保存していますが、 文字化けなどderu出ないか心配です。 大丈夫でしょうか。 WindowsXPのときはこんなのが表示されませんでしたが、Windows7を使うようになってからこんな警告みたいな脅かしみたいのがでます。 (親切心であれば反って不安に駆られるのは私だけでしょうか)

専門家に質問してみよう