
PHPは全く分からない状態からの質問です。
旧サーバー(アルファメール)から新サーバー(xbit)に移行の際ディレクトリごと移動しました。
MYSQLは調べながらphpMyAdminを使い、(旧サーバーには既に存在しておりそれを利用。バージョン2.10.3)エクスポート。新サーバーに(バージョン4.1.13)インポートしました。
データーベース・ユーザー名・パスワードはすべて同一にPHPの動作はうまくっているようなのですが、データーベースから引っ張ってきた文字のみがすべて???表示になってしまいます。
文字コードをいろいろいじってみたのですが、直りません。
どこをいじればいいでしょうか?
文字コードはEUC-JP、sqlはujisになっています。
No.5ベストアンサー
- 回答日時:
>どこで文字コードを指定すればいいかわかりません。
common.phpかconfigure.phpでmysqlへの接続が記載されているのでは?
CONNECT_DB()というユーザー関数がキーになっていると思います
第4引数でオプションをしていできるかもしれませんし
ダイレクトにCONNECT_DBを修正しないといけないかもしれません
ただ見る限りclassにもしていないようですし
かなり見にくいソースになっているかもしれませんね
解決いたしました。
結論から言うと mysql_set_charset('ujis'); を追加したところ解決しました。
EUC-JP=ujis と思っていたので、mysql_set_charset('EUC-JP');はダメでしばらくはまっていました。
CONNECT_DBが~というところが大変ヒントになりました。
DNS切り替えを遅らせてもらって、切り替え直前だったのでぎりぎり解決できてよかったです。
ほんとありがとうございました。
ついでに聞いておきたいのですが、以下の部分はmysqlに絡まないと書いてあったので
mb_language(Japanese);
mb_internal_encoding('EUC-JP');
mb_http_output('EUC-JP');
はそのままですが、問題ないですよね?
No.4
- 回答日時:
>phpMyAdmin上では文字化けしてないので、インポートまでは問題ない
ああ、ちょっと誤解していました
であれば、SQLで接続する際にEUC(ujis)で接続する必要があるのでは?
※クエリーでnamesをいじるなとよくいわれるのでマニュアルの記載をみると
こんな感じ?
$dsn = 'mysql:host=localhost;dbname=testdb';
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES ujis',
);
$dbh = new PDO($dsn, $username, $password, $options);
http://php.net/manual/ja/ref.pdo-mysql.connectio …
この回答への補足
<?php
include("./common.php");
require("./configure.php");
require_once("./template.php");
mb_language(Japanese);
mb_internal_encoding('EUC-JP');
mb_http_output('EUC-JP');
if(get_magic_quotes_runtime() == "1"){
set_magic_quotes_runtime ( 0 );
}
CONNECT_DB($DB_host, $DB_user, $DB_pass, $DB_dbName);
↓
最後近くに
$options = array('filename' => "./list.html",
'debug' => 0,
'file2' => "$file2",
'global_vars' => 0,
'loop_context_vars' => 1,
'strict' => 0,
'die_on_bad_params' => 0);
(ユーザーやパスワード データベース名は別のphpで指定してます。)
となっているんですが、どこで文字コードを指定すればいいかわかりません。
ほかにやったのは、PHPファイルやhtmlファイルの保存をEUCやシフトJISにしても、ほかの部分が化けるだけでデーターベースで引っ張ってきた部分はずっと??のままでした。(これは意味ないですか?)
No.3
- 回答日時:
EUC-JPとSJISは半角英数字は同じコードなので、
日本語のフォント名、コメント、変数名などを使うと
オカシクなることがあります。
一番怪しいのはPHPのソーステキストがEUC-JPで
書かれていないことです。
DBの文字セットとPHPの文字セットが違うと字化けの
原因になりがちです。
No.2
- 回答日時:
1.PHPのソースをEUC-JPで書いていますか?
2.Webの場合、HTMLのcharsetはEUC-JPですか?
この回答への補足
phpには
//set language
mb_language(Japanese);
mb_internal_encoding('EUC-JP');
mb_http_output('EUC-JP');
htmlには
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<link href="../import1.css" rel="stylesheet" type="text/css">
import1.cssには
@charset "Shift_JIS";
@import "import2.css";
import2.css
@charset "Shift_JIS";
@import url("tt01.css");
とあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(ブログ) ブログの作成 2 2023/06/25 09:11
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- その他(プログラミング・Web制作) .htaccessファイルの修正がこれで問題ないかどうか 1 2022/04/21 08:42
- その他(Microsoft Office) Outlook 2021 アカウント設定時の「サーバーにコピーを残す」について 2 2023/05/09 17:40
- サーバー 接続・ログインはできているのにメールが送信できない 2 2022/06/27 15:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
winscpのエラー
-
WTSについて
-
NTT-ME からの請求額
-
タブレットのGoogleChromeでサ...
-
LAN内の通信を行ったあとインタ...
-
さくらレンタルサーバーのホー...
-
社内ネットワークの1台だけ接...
-
学校のWiFiに繋げると履歴が見...
-
Excelシート / ハイパーリンク ...
-
インターフェースサーバーとは...
-
Googleドライブなどを使わずに...
-
ネットワークの構成に困っています
-
サーバーマネージャーが消えた
-
BIOS設定を確認する方法
-
UNIXサーバを跨いだリンク
-
グループポリシーでインターネ...
-
WindowsのPCからコマンドでサー...
-
メールサーバーについて詳しい...
-
サーバーってどこにあるの?
-
会社内でLANを組むためには、サ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
winscpのエラー
-
サービスIPって何ですか?
-
WTSについて
-
VNCでログインする方法を教えて...
-
ASPでAccess接続 ODBCの設定に...
-
インターネットの履歴はサーバ...
-
他人名義でのインターネットで...
-
【minecraft】サーバーに接続で...
-
前略プロフィールというサイト
-
タブレットのGoogleChromeでサ...
-
Cookieの語源は?
-
昔、LAN上で使っているコンピュ...
-
ファイルの共有の仕方
-
パソコン歴だけは長いけど技術...
-
さくらレンタルサーバーのホー...
-
LinkStationサーバーのデフラグ...
-
クラスタリングとpcAnywhere
-
Local Area Network : Windows...
-
離れた拠点にあるPC内のデー...
-
このurlに接続できません。
おすすめ情報