- PR -

windowsでもLINUXでもブラウザで日本語を正しく表示するには

1
投稿者投稿内容
take
大ベテラン
会議室デビュー日: 2004/08/13
投稿数: 177
お住まい・勤務地: 沖縄県北部
投稿日時: 2004-09-17 10:44
いつもお世話になります。jspを作成して、エンコードをSJISにするとLINUXのもじらで見たときに日本語が文字化けしてしまいます。この、@IT会議室はヘッダーに

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>。
okutin
ベテラン
会議室デビュー日: 2003/12/11
投稿数: 98
お住まい・勤務地: 広島
投稿日時: 2004-09-17 11:01
こんにちは。

質問内容がよくわからないのですが、EUCで書かれたHTMLであれば
<meta http-equiv="Content-Type" content="text/html; CHARSET=EUC-JP">
ですし、シフトJISで書かれたHTMLであれば
<meta http-equiv="Content-Type" content="text/html; CHARSET=Shift_JIS">
でいいです。

あと、例としてあげている書き方はよくないですね。
TITLE要素に日本語が含まれるのであれば、上記meta要素の下に書くべきです。


take
大ベテラン
会議室デビュー日: 2004/08/13
投稿数: 177
お住まい・勤務地: 沖縄県北部
投稿日時: 2004-09-17 12:03
ご返答ありがとうございます。自分で読み返してみても不可解な日本語です。質問しなおさせていただくと、jspファイルに以下の記述をして、

<%@ page language="java" pageEncoding="sjis"
import="kamiBeans.*, java.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>表示</title>
</head>

LinuxのブラウザMozillaで見てみると、タイトルが文字化けしてしまうのです。エンコードがsjisになっているからだとおもうのですが、いつも利用させていただいてる@IT会議室をブラウザで開くと、Linuxでもwindowsでも文字化けせずに表示されるのはどうしてかを知りたくて質問しています。このページのソースの始めの部分を見てみると、

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>@IT 会議室 - 返信作成</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP">

となっています。ここに記述されている何かがwindowsとLinuxの日本語表示を可能にしているのかなと思っています。charset=EUC-JP はwindowsでも普通に表示できるエンコードなのでしょうか?
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-09-17 12:31
サーブレットコンテナがクライアントへ出力するときに参照するのはContentTypeの指定なので、
<%@ page language="java" contentType="text/html; charset=EUC-JP"pageEncoding="Shift_JIS"
import="kamiBeans.*, java.sql.*"%>

としたほうがいいでしょう。METAタグは、「このHTMLはこの文字セットで送っています」と
ブラウザに示すタグですが、サーブレットコンテナが別の文字セットで出力してしまっていて
は意味がありません。
okutin
ベテラン
会議室デビュー日: 2003/12/11
投稿数: 98
お住まい・勤務地: 広島
投稿日時: 2004-09-17 12:54
こんにちは。

JSPの「pageEncoding」は、そのJSPファイルがどの文字コードで書かれているのか指定するものです。
ですから、JSPファイルがSJISであればSJISでかまいません。
そして実際にブラウザへHTMLコンテンツとして送信する場合に使用する文字コードは「contentType」の「charset」で指定します。
これはSJISである必要はありませんので、ブラウザ側に実際に送りたい文字コードを指定してください。ただし、METAタグなどで文字コードを指定した場合は、これを同じにする必要があります。

charset=EUC-JPはwindowsでも普通に表示できます。というかOSは関係なく、ブラウザがその文字コードに対応しているかどうかだけです。
多くのブラウザではSJISやEUCをはじめ、多くの文字コードに対応しているはずです。

この会議室で文字化けを無くすためにあるものは以下の部分ですが、

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=EUC-JP">

WindowsやLinuxで文字化けをせずに表示するためというよりも、もっと単純に「このコンテンツはHTMLで、文字コードはEUCで書かれてます」という意味しかありません。
1

スキルアップ/キャリアアップ(JOB@IT)