• ベストアンサー

文字コードについて初歩的質問です

xhtml,cssにてウェブデザインをしています。 数年仕事をして参りましたが、文字コードについての理解が乏しいままでしたので、こちらで質問させて頂きます。 xoopsサイトを制作した時に文字化けが出て以降、 サーバーの文字コードと同じ文字コードで作成し metaタグ内で指定するようにしてきました。 今回、あるウェブサイトを多言語に修正することになり、 unicodeを使いたいと思います。 この時に、サーバーの文字コードとあわなくなる事は 問題ないのでしょうか。 閲覧者のブラウザで文字コードが判別できれば問題がないのか、 サーバーの文字コードとあわなければいけないのか、 どのような場合にサーバーで文字コードの問題がおきるのか、 基本的な理解がないためにわかりません。 それから、ウィキペディアを調べていて UTF-8がUnicodeの符号化という欄に記載されていて、理解はできなかったのですが、UTF-8とUnicodeは関連しているのでしょうか? 少し羅列になってしまい申し訳ありませんが、 わかる範囲でお答え頂けたらと思います。 よろしくお願いします。

  • HTML
  • 回答数2
  • ありがとう数4

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

  • ベストアンサー
回答No.1

当方、ウェブデザイン経験は6ヶ月程度の為に確定的なことは申し上げれませんが サーバーの文字コードというのは、カレントで扱っている文字コードのことでしょうか? (WindowsであればS-Jisだから、S-Jisで作成していた?) であれば、OSが取り扱う事ができる文字コードであれば問題ないと思います。 もしサーバー側OSがUnicodeを扱えなければ、そもそもファイルを配置してサイトにしようとしたところでthmlのなんらかのエラーがでるか、 ぐちゃぐちゃに化けたサイトになるような・・・ 最近のサーバーでUnicodeを扱えないという事はないでしょうからその辺は問題ないでしょう。 問題はブラウザ~WEBサバですね。 Unicodeでこのサイトを検索しても 色々と問題があるようです。(特にIE) http://oshiete.orangepage.net/qa2889577.html とはいえ、多言語化対応ということなので Unicodeが便利ですね。 http://oshiete.orangepage.net/qa5594189.html ご質問内容は (1)サーバーでUnicodeが扱えるのか? (2)UTF-8とUnicodeは関連しているか?(つまり、文字集合間で気にすべきところはあるか?) という事が伺えるので、(2)は他の方にお任せするとして、 (1)については、WEBサバがUnicodeを扱えるなら。ですね。 結局、HTTP ヘッダに「このサイトはUnicodeですよ」ってブラウザ側にhtmlを送信するので、受け取り側が「知るかこのやろう」なんてことでS-jisやらなんやらでhtmlを可視化しようとすると化けてしまう・・という事になります。 ちなみに、よく使われる「文字コード」という言葉ですが 文字集合(文字セット)と文字のエンコード方式とで分けて考える玄人の方もいらっしゃると思うのでご参考程度に。 解決方法ではなく申し訳ないですが、コメントが無かったので少し書き込んでみました。 ではでは

参考URL:
http://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou06/learning-xml06.html
takeetakee
質問者

お礼

さっそくのご回答、どうもありがとうございます。 ご回答を足がかりに勉強を進めてみます。 何が分からないのか分かってない状態なので、 少しずつ整理していきたいと思います。 とても参考になります。

その他の回答 (1)

回答No.2

> この時に、サーバーの文字コードとあわなくなる事は > 問題ないのでしょうか。 サーバーがデフォルトでどの文字コードを使っているのかと,コンテンツの文字コードは別物です。 同一サーバー内で複数の文字コードを共存させる事も当然できます。 > どのような場合にサーバーで文字コードの問題がおきるのか、 > 基本的な理解がないためにわかりません。 サーバーサイドで文字列処理を行った場合に, ・サーバーサイドプログラムが正しく文字コードを取り扱えない ・データベースが正しく文字コードを取り扱えない などの問題が起きる事があります。 また,HTTPのContent-Typeヘッダに誤った文字コードを指定すれば,それは文字化けの原因になります。 > それから、ウィキペディアを調べていて UTF-8がUnicodeの符号化という欄に記載されていて、理解はできなかったのですが、 > UTF-8とUnicodeは関連しているのでしょうか? 関連しています。 Unicodeというのは単純に文字に番号を振っただけなので (Unicodeは符号化文字集合), そのままではコンピュータで扱えません。 その番号をそのまま数値として使う (UTF-32),ちょっとだけ工夫して使う (UTF-16), といった方法で,「その番号をどの番号に対応させるのかの対応付け」が必要になります。 この「対応付け」が文字符号化方式,もしくは文字コードと呼ばれるものです。 で,UTF-8はこの文字コードに相当します。 ABCあいう という文字列 (U+0041 U+0042 U+0043 U+3042 U+3044 U+3046) は,UTF-8では, 41 42 43 E3 81 82 E3 81 84 E3 81 86 というオクテット列に変換されます。 なお,HTML 4やXHTMLでは符号化文字集合にISO-10646-1 (ほぼUnicodeと同じ) を指定しているため, HTML 4の文書で文字符号化方式としてShift_JISを使ったとしても, 「ISO-10646-1符号化文字集合の文字をShift_JISという文字符号化方式でオクテット列に符号化した文書」 という扱いになります。

関連するQ&A

  • 文字コードに関することです

    こんばんは。 社会人1年目でSEをやっております。 来週文字コードについて、発表することになっています。 発表内容として 文字コードの種類としてsjis.unicode.EUCなどがあり、これらの文字コードについて説明します。 しかし、どの程度のレベルまで説明すればいいのか悩んでいます。 私の考えとしては、unicodeを例にあげさせていただきますが、 unicodeとは、世界の言語を1文字2バイトを用いて表現できる文字コードです。unicodeの中でも大きく分けて2種類utf-8、utf-16に分けられます。 次に各utfの詳細な説明に入ります。 こんな具合にそれぞれの文字コードについて、説明していってもよろしいですか?? あと、utf-8がなぜ必要になったのか、教えていただけますでしょうか?? よろしくお願いします。

  • 文字コードの違い

    レンタルサーバを借りてHPつくる場合に 文字コードはなににすべきでしょうか? 借りているサーバではJISに初期設定がなっていますが サイトのサンプルなどではUTF-8が多いようです (ユニコードだと思ってます) CGIなどを使う予定ですがJIS、UTF-8またはそれ以外 の文字コードはどのような違いがあるのでしょうか? 例えば外国語で表示する場合はユニコードのほうがいいとか 違いとメリットなどあれば教えてください

    • ベストアンサー
    • HTML
  • 文字コードの種類について

    大変恥ずかしい質問ですが、文字コードの種類について疑問があります。 UTF-8、UTF-16、UTF-32という規格はどのような場合に使用するのでしょうか? Windowsのメモ帳で使用している(?)、Shift-JISという規格も全く解りません。 wikipediaで調べてみたものの、説明が理解できませんでした。 ・・・-xの数値がビットを表している、と言われてもピンときません。 符号空間?何それ?というレベルです。 大まかなイメージを掴みたいので、お知恵を拝借頂けると幸いです。 よろしくお願いいたします。

  • 文字コードについて

    <?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" lang="ja" xml:lang="ja" id="sixapart-standard"> <head> <meta http-equiv="Content-Type" content="text/html" charset="Shift_JIS" /> </head> というように文字コード指定をしているのですが、なぜか文字コードがUTFになり、shift jisにすると文字化けしてしまいます。 どなたかアドバイスお願いいたします。

    • ベストアンサー
    • HTML
  • 文字コードについて

    OKWaveのサイトで例えると、 <!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" dir="ltr" xmlns:og="http://ogp.me/ns#" xmlns:mixi="http://mixi-platform.com/ns#" xmlns:fb="http://www.facebook.com/2008/fbml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> のように文字コードをUTF-8にしてもブラウザで確認すると文字化けして、上手く文字が表示されません。 UTF-8は英文表示になるのか?英文の文字化けのような感じです。 UTF-8を日本語で文字化けしないように表示するには、どうすれば良いものでしょうか? ご存知でしたらご教授願います。

  • UTF-8とASCIIコードにおける互換性について

    UTF-8とASCIIはそのASCIIコードの範囲のおいて 互換性を持ちます。(と、書籍や多種な文献にはそういった記述があります) たとえば【A】という文字をUTF-8で符号化した際は【41】(16進数で) さらにASCIIコードでも【41】という値がAという文字に割り当てられています。 確かに、一件互換しているようにみえますが、UTF-8っていうことは最終的には Unicode上のコードポイントの値・・・つまり0x0041という値に復元?(というのでしょうか)するわけですよね? でそのUnicodeの文字集合上から復元したコードポイントに対応する文字を参照しAという文字をみつけてくると・・・。 これって【A】という文字をUTF-8で符号化した歳のバイト列はASCIIと一致しているけれど 結局Unicodeコードポイントに直した場合【00】という上位バイトが無駄にくっついてきて【0x0041】となり 互換性がなくなるのではとおもったのですが・・・。 これはどういう意味の互換性なのでしょうか? 識者の方ご教授ください。 お願い致します。

  • コピーすると文字コードが変わっちゃう

    プログラムを(ちなみにPHP)エディター(ちなみに秀丸)で入力して保存時にエンコードの種類を「Unicode(UTF-8)」で保存 もちろんプログラム(HTML/PHP記述)では <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> を指定しています 実行すると文字化けも起こらず正常にホームページが完成しました それをコピーして別のサーバーにアップすると正常にホームページが開かないんです 文字化けだけでなくソースが画面に表示されました そのソースも文字化けです コピー先をエディターで開くと「日本語(Shift-JIS)」になっていました コピー元は「Unicode(UTF-8)」です なぜでしょう? そもそも「Unicode(UTF-8)」をコピーするには単純にコピーしてはいけないのでしょうか? プログラムの量が結構あるのでこの「日本語(Shift-JIS)」を一括して「Unicode(UTF-8)」に保存できるようなツールはないのでしょうか?

  • テーブルごとに文字コード指定

    データベースの文字コードをUNICODEにしたいのですが、 レンタルサーバーを使っており、データベースはEUCのものしか使えません。 そこでテーブルごとに文字コードを指定して作成しようと思ったのですが、 うまくUNICODEのテーブルができません。 以下の記述でEUCのデータベースにUTF-8のテーブルを作成しています。 どこか間違っていますでしょうか? ------------------------------ create table テーブル名 (  id integer,  name varchar(120) ) CHARACTER SET utf8; ----------------------------- お詳しい方がおられましたらご回答下さい。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • 文字コードが知りたい

    既存のテキストファイル(メモ帳)があるのですが このファイルの文字コードが ANSIなのかUnicodeなのかUTF-8なのかってどうやったらわかりますか? プロパティを見てもわかりませんでした。

  • 文字コードってUTF-8が主流に?

    文字コードについては、UTF-8が主流になりつつあるってネットで観ました。 文字コードを検索すると次のような説明があります。 (UTF-8のエンコード) UTF-8は、UnicodeとASCIIコードを混在させるための規格です。 (シフトJISコード) シフトJISコードは、SJISとも呼び、Microsoft社が決めたコードでWindows95やMS-DOSやMacなどで使用されています。 その上で質問です。 1、 UTF-8が主流になるってことは、Windows、MacがUTF-8に方向転換するってことでしょうか? 2、 仮にUTF-8が主流になっても、サイトに <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> と記述していれば文字化けなく表示されるのでしょうか? 今の時点では判断できない質問なのでしょうか・・

専門家に質問してみよう