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

MySQL
サーバ: cgidb05.gmoserver.jp (cgidb05.gmoserver.jp via TCP/IP)
サーバのバージョン: 5.0.51a-log
プロトコルバージョン: 10
ユーザ: sd_dba_MTA0NzUz@cgi07.unix.internal-gmo
MySQL の文字セット: UTF-8 Unicode (utf8)

Web サーバ
Apache/2.2.9 (Unix) mod_ssl/2.2.9 OpenSSL/0.9.8l
MySQL クライアントのバージョン: 5.0.67
PHP 拡張: mysqli
phpMyAdmin バージョン情報: 3.3.1

select.php文
<?php
$url = "cgidb05.gmoserver.jp";
$user = "sd_dba_MTA0NzUz";
$pass = "ifsaBUD8";
$db = "sddb0033532200";

// MySQLへ接続する
$link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。");


// データベースを選択する
$sdb = mysql_select_db($db,$link) or die("データベースの選択に失敗しました。");

// クエリを送信する
$sql = "SET NAMES utf8";
$sql = "SELECT * FROM kanri";
$result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);

//結果セットの行数を取得する
$rows = mysql_num_rows($result);

//表示するデータを作成
$sql = "SET NAMES utf8";
if($rows){
while($row = mysql_fetch_array($result)) {
$tempHtml .= "<tr>";
$tempHtml .= "<td>".$row["mailadd"]."</td><td>".$row["pass"]."</td><td>".$row["name"]."</td>";
$tempHtml .= "<td><a href=\"update.php?cd=".$row["mailadd"]."\" target=\"_self\">更新</a></td>";
$tempHtml .= "<td><a href=\"delete.php?cd=".$row["mailadd"]."\" target=\"_self\">削除</a></td>";
$tempHtml .= "</tr>\n";
}
$msg = $rows."件のデータがあります。";
}else{
$msg = "データがありません。";
}

//結果保持用メモリを開放する
mysql_free_result($result);

// MySQLへの接続を閉じる
mysql_close($link) or die("MySQL切断に失敗しました。");
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>全件表示</title>
</head>
<body>
<h3>全件表示</h3>
<?= $msg ?>
<table width = "300" border = "1">
<tr bgcolor="##ccffcc"><td>mailadd</td><td>pass</td><td>name</td><td colspan="3">EDIT</td></tr>
<?= $tempHtml ?>
<form action="insert.php" method="post">
<tr>
<td><input type="text" name="cd"></td>
<td><input type="text" name="name"></td>
<td><input type="text" name="name"></td>
<td colspan="3">
<input type="submit" name="submit" value="追加"><input type="reset" value="リセット">
</td>
</tr>
</form>
</table>
</body>
</html>

csvには漢字、かな 共に吐き出し正常。PDF、ブラウザだと???になります。
どなたかよろしくお願いします。

A 回答 (3件)

ApacheのAddDefaultCharsetが怪しい。


これコメントアウトしておくことをすすめる。
これが原因であろう文字化けをネットやっているとよく見る。
(Webサーバの設定をろくにできない奴が構築管理しているのだとよくわかる事例。)

この回答への補足

ApacheのAddDefaultCharsetがどうなっているのかを聞いたのですが、
以下のように返信がありました。

---------------------------------------------------------
お問い合わせの件につきまして、弊社にてご利用いただけます
MySQLは文字コードがUTF-8固定となります。

また、PHPの設定はお客様ホームページ領域内に「php.ini」
を設置いただくことにより変更可能となり、当該ディレクトリ
内の実行ファイルについてはお客様設置のphp.ini設定を参照し
動作するものとなります。
---------------------------------------------------------

と言う事で、php.iniを設定しアップしてみました。
が、変化なし。

補足日時:2010/04/13 21:34
    • good
    • 0
この回答へのお礼

ご連絡頂きまして、ありがとうございます。
早速、管理者に確認してみます。

お礼日時:2010/04/13 09:37

ANo.1で回答した者です。

お礼メッセージをありがとうございます。

>初心者でお恥ずかしいのですが、確認の方法がわかりません。

PHPで下記のスクリプトを実行し、表示される文字列がutf-8 かどうかご確認ください。

echo mb_internal_encoding();

この回答への補足

お付き合い頂きまして、ありがとうございます。
早速ですが、お返事は、UTF-8でした。
<http://flashtv.jp/samples/102/echo.php>

//phpinfoでサーバー側を確認してみました。
//<http://flashtv.jp/samples/102/phpinfo.php>
//-----------------------------------------------
mbstring

Multibyte Supportenabled
Multibyte string enginelibmbfl
Multibyte (japanese) regex supportenabled
Multibyte regex (oniguruma) version4.4.4
Multibyte regex (oniguruma) backtrack checkOn

mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.

DirectiveLocal ValueMaster Value
mbstring.detect_orderautoauto
mbstring.encoding_translationOffOff
mbstring.func_overload00
mbstring.http_inputpasspass
mbstring.http_outputUTF8UTF8
mbstring.internal_encodingUTF8UTF8
mbstring.languageJapaneseJapanese
mbstring.strict_detectionOffOff
mbstring.substitute_characterno valueno value
//-----------------------------------------------

このような感じです。

補足日時:2010/04/13 00:34
    • good
    • 0
この回答へのお礼

入力欄が変ですが、リンクアドレスの修正となります。

http://flashtv.jp/samples/102/echo.php

http://flashtv.jp/samples/102/phpinfo.php

お礼日時:2010/04/13 00:49

php.iniのmbstring.internal_encodingはutf-8になっていますか?


ご確認下さい。

この回答への補足

昨日、"phpbb"と"wordpress"を入れましたが、文字化けはしませんでした。

補足日時:2010/04/11 11:01
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
初心者でお恥ずかしいのですが、確認の方法がわかりません。
レンタルサーバで勉強しています。管理者に確認すればよいのでしょうか?
それとも自分の環境で確認、変更ができるのでしょうか?
また、mysql.iniも一緒に確認したほうがいいでしょうか?

同様の質問が多いようですので、解決するまで掲載したいと考えています。よろしくお願いします。

お礼日時:2010/04/11 10:56

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