電子書籍の厳選無料作品が豊富!

 データベースの設定で今まで文字コードをEUCに設定していましたが、一般的にはSHIFT-JISを使用した方が良いというアドバイスを受けて、今回からSHIFT-JISに変更することにしました。

 データベースの設定でSHIFT-JISに変更し、
各テーブルのデータもSHIFT-JISで文字化けが起こらないようにエンコーディングもしました。

 そして、各phpファイルの保存形式をEUCにしていたものを全てSHIFT-JISとして保存もしました。しかし、ページによっては文字化けがまだ起こっていたり、表示すらできないページもあります。
きちんと表示されているページもありますが。

 何故、このような差が起こるのでしょうか?
下記は、ページが表示されないphpファイルのソースです。

ファイルをEUC形式で保存すると画面は崩れていますが表示されます。
しかし、SHIFT-JIS形式で保存すると真っ白になります。

ちなみにソースは、適当なものなのでその部分はスルーしてください。
いろいろ試みたのですが解決できず、本当に困っています。
知恵をお貸し下さい。
よろしくお願い致します。

<?php

echo <<< HTML
<html lang="ja">
<head>
<style type="text/css">
<!--
div {
border: 1px solid #77aaff;
background-color: #ccccff;
text-align: center;
font: italic 0.8em Verdana;
}
-->
</style>
<script type="text/javascript">
<!--
var ele, max, count = 0;
var widthList = new Array();
function getGraph() {
ele = document.getElementsByTagName("div");
if (!ele) return;

var tmp = new Array();
for (var i = 0; i < ele.length; i++) {
tmp[i] = widthList[i] = ele.item(i).style.width.replace("px", "");
}
//max = tmp.sort(function(a, b) { return(b - a); })[0];
max = 10000;

(widthList) && graph();
}
function graph() {
for (var i = 0; i < widthList.length; i++) {
var now = (count >= widthList[i]) ? widthList[i] : count;
ele.item(i).innerHTML = ele.item(i).style.width = now + "px";
ele.item(i).innerHTML = ele.item(i).style.width.replace("px", "P");

}

if (count < max) setTimeout("graph();", 20);// グラフを表示する速さ
count += 1;// グラフの増加量 (px)
}
// -->
</script>
</head>
<body onload="getGraph();">
<form action="../AAA/AAA.php" method="POST" name="myFORM">

<center>
ポイントレース
</center>

<br>
<br>

<table width="15%" align="right" style="border:solid 1px #000000">
<tr>
<td>$Nameさん</td>
</tr>
<tr>
<td>総ポイント</td><td>$TotalAMT</td>
</tr>
<tr>
<td>今月のポイント</td><td>$Mpoint</td>
</tr>
</table>

<br>
<br>
<br>
<br>

<table border="2" width="100%">
<tr>
<td>

<table border="0">
<tr>
<td>
HTML;

?>

A 回答 (3件)

> 一般的にはSHIFT-JISを使用した方が良いというアドバイス



そのアドバイスに従わない方がよかったのではないかと思います。
shift-JISよりはeuc、eucよりはutf-8の方が、データベースの
コード体系として望ましいと思います。

可能であればutf-8に変更するのがよいと思いますが、
むずかしそうであれば、eucに戻すことを検討なさってみてはいかがでしょうか。

この回答への補足

 ありがとうございます。
確かにEUCに戻した方が賢いのかもしれません。
それでも問題はないといえばないんですが、
mailtoでメーラーを起動した時、
デフォルトで件名に文字を入力しておきたいんですよ。

 EUCだと文字化けして表示されたんですが、
その点ってEUCでも改善できるものなのでしょうか?

補足日時:2007/11/05 22:11
    • good
    • 0

一般的には EUCかUTF-8を使います


最近はUTF-8が増えつつあります。

戻したほうが無難です。

この回答への補足

わかりました。
EUCの方が無難ということなので戻します。
ありがとうございました。

補足日時:2007/11/05 23:36
    • good
    • 0

どこかでエラーになっていませんか?


コマンドラインで動かしてエラーにはなりませんか?
また、出力されるHTMLにも文字コードを明示的にするといいと思います、。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!