さくらのレンタルサーバで文字化けが発生します。
Mysqlの仕様は以下の通りです。
* サーバ: mysql110.db.sakura.ne.jp via TCP/IP
* サーバのバージョン: 5.1.42
* プロトコルバージョン: 10
* ユーザ:
* MySQL の文字セット: UTF-8 Unicode (utf8)
perlスクリプトをUTF-8に変換してアップロードしています。
perlスクリプトからヒアドキュメントで出力されるコードはおよそ以下の通りです。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="ROBOTS" content="INDEX,NOFOLLOW" />
<title>タイトル部分(文字化けしません)</title>
</head>
<body>
<h1>ここは文字化けしません</h1>
<p>ここが文字化けします</p>
</body>
</html>
ここでtitleタグ、h1タグは正常に表示されます。
そして、Pタグの文字がデータベースから引っ張ってきた文字なんですが、この文字はUTF8で記録されたものですが、ここが文字化けします。
PHPMyadminからSHOW VARIABLESを実行して、文字コードが関連されていると思われる結果部分は以下の通りです。
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server ujis
character_set_system utf8
character_sets_dir /usr/local/share/mysql/charsets/
collation_connection utf8_general_ci
collation_database utf8_general_ci
collation_server ujis_japanese_ci
以上の事から文字化けを直す方法をご教授いただければと存じます。
宜しくお願いいたします。
No.2ベストアンサー
- 回答日時:
DBD::MySQL に mysql_enable_utf8 という属性があります。
これをセットすると、mysql から取り出したデータは自動的に UTF8 フラグ
つきになります。
This option is experimental and may change in future versions
となっていますが、使えませんか。
参考URL:http://search.cpan.org/~capttofu/DBD-mysql-4.016 …
この回答への補足
スクリプトt側では use utf8;をしていませんので utf8フラグは立っていません。
my$dbh = DBI->connect(*******);の後に
$dbh->do("SET CHARACTER SET utf8");
を記述して問題は解決するのですが、
my$dbh = DBI->connect(*****,*****,on_connect_do=>"SET CHARACTER SET utf8");だとやはり文字化けします。
on_connect_do属性が効いていない感じがします。
on_connect_do属性が利用できれば、スクリプトもすっきりするので利用したいのですが、
この属性が効かない原因は何が考えられますでしょうか?
No.1
- 回答日時:
perl スクリプトが示されてないのでなんとも言えませんが、
たぶん perl の UTF8 フラグ付き文字とフラグなし文字が
混在しているのだと思います。
この回答への補足
回答ありがとうございます。
UTF8 フラグ付き文字については、
DBに値を挿入するときにそのような警告が発せられず、かつ文字化けした文字が挿入されてしまうので、別に原因があると思います。
昨夜、スクリプト内に $dbh->do("SET CHARACTER SET utf8");
を書いたところ、文字化けは無くなりましたが、全てのスクリプトにいちいち書くのはあまりクールではないので、もっとスマートな方法がありましたら教えていただきたいと思います。
宜しくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- HTML・CSS html cssのmargin 5 2022/12/03 11:04
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php・Mysql Like文で日本語が使...
-
検索で濁点や半濁点をヒットさ...
-
接続ができません
-
VBAで変数内に保持された二次配...
-
副問合せにLIKE文を使う方法は...
-
mysqlがインストールされている...
-
列数が多いと結果が行単位に改...
-
ODP.NETのバージョン確認
-
ERROR 1045 (28000) (using pas...
-
Float型の時の計算結果がおかしい
-
ERROR 1054 (42S22) 原因不明です
-
MySQL 5.0.41 のvarcharの文字...
-
存在しているファイルがロード...
-
MysqlにURLを登録する方法
-
MySQLカラム名は日本語と英数字...
-
SQLのVARCHARとVARCHAR2の違い
-
phpで複数のDBを使用した場合の...
-
テーブル作成でエラーが出てき...
-
MySQLでAutoCommitをfalseにする
-
旧filemakerで和暦(令和など)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DB内の日本語データがPHPで取得...
-
cseデータ閲覧時の文字化け
-
php・Mysql Like文で日本語が使...
-
MYSQLで日本語が入力できない
-
XAMPP1.7.1をインストールし、M...
-
xamppのMySQLの文字化け
-
php $dsn
-
mysqlの文字化けが治せません・...
-
文字参照からUTF-8への変換
-
MYSQL再起動後に接続できなくな...
-
MySQL 文字化けについて(PHP)
-
MAMPのMySQLで文字化けする
-
CSVをMYSQLにインポートすると...
-
Mysqlの文字化けについて
-
さくらのレンタルサーバで文字...
-
文字コードの変換について
-
接続ができません
-
ODP.NETのバージョン確認
-
副問合せにLIKE文を使う方法は...
-
MySQLカラム名は日本語と英数字...
おすすめ情報