スレッド表示 | フラット表示〕 全トピック 920 件中 246 番目 次≫ ≪前

単なる文字化けとも思えません。

created: 2006-05-06 00:46 | modified: 2006-05-07 10:51 | reply: 3

[3064] 単なる文字化けとも思えません。

user: Yumi | created: 2006-05-06 00:46
本当にいつも(というかトラブルたびに)お世話になっています。
下は住所検索で、mysqlでselectしたものを表示するためです。どうしても$shikuだけが文字化けしprintでは・(中点)となり、vardumpではなぜか$shikuだけ涛沢(arrayとも表示されず)になってしまいます。実際のデータは、藤沢市鵠沼松ヶ岡です。

var_dump($ken);var_dump($shiku);var_dump($addr);は以下のようになります(この例は1行分だけです)。
array(1) { [1]=> string(8) "神奈川県" } string(4) "涛沢" array(1) { [1]=> string(5) "2丁目" }

(スクリプト)
$cnt = 1;
while ($YuchiRows = mysql_fetch_array($rs)){
$ken[$cnt] = $YuchiRows[ken];
$shiku[$cnt] = $YuchiRows[shiku];
$addr[$cnt] = $YuchiRows[addr];
$cnt = $cnt + 1;
}

$cnt = 1;
while ($cnt <= $NumRows){
print("$ken[$cnt]");
print("$shiku[$cnt]");
print("$addr[$cnt]");
$cnt = $cnt + 1;
}

ちょっと長くなってしまいました。半日悩みましたが、わかりません。どなたか教えてください。
reply: 3067 返信 編集 削除

[3067] 文字化けならば

user: ゆうじ | created: 2006-05-07 02:07
こんばんわ。

文字化けと推測されるなら、
初めに疑うべきは文字コードではないでしょうか。

1.mysql の文字コードをチェック。
2.mysql に保存する際、必要があれば、mysql の文字コードに変換。
3.mysql から取り出した後、必要があれば、表示する文字コードに変換。

このような処理はされてますか?

また、mysql の文字コードが Shift-JIS だったりすると、
アスキーコードと衝突する文字があるので、
保存の際、mysql_escape_string しておかないと正しく保存されません。

mysql_escape_string
http://jp.php.net/manual/ja/function.mysql-escape-string.php
Parent: 3064  reply: 3069 返信 編集 削除

[3069] ご返事、ありがとうございます。

user: Yumi | created: 2006-05-07 08:51
mysqlもphpもSJISです。
保存するときも、取り出すときも、何もしていない(つもり)です。

自分の整理のつもりで状況を整理してみます。次は自己レスできるよう、がんばります。
・ken, shiku, addrに「鵠沼松が岡」と入れると、phpMyAdminでは、ちゃんと見える。
・selectで取り出し、fetch_arrayから変数→表示しようとすると、$shikuだけがちゃんと表示されない。
・前後のコラムにから取り出した同じ文字は、ちゃんと表示される。
・ためしに別名の表(全く同じ表)をつくってみましたが、状況は同じ。
Parent: 3067  reply: 3070 返信 編集 削除

[3070] 解決しました。

user: Yumi | created: 2006-05-07 10:51
文字コードの取扱い以前の、もっと低レベルでした。
以下、反省をこめて。
・検索formの県、市区をPOSTで、$ken、$shikuに受け取る。
・$sql = "select * from jusho where ken = '$ken' and shiku like '%$shiku%'";
・fetch_array→$JushoRowsに格納して
・$shiku[$cnt] = $JushoRows[shiku];
この最後の$shikuは変数名を変えなければならないようです。PHPの変数の取扱いの初心者的誤りが原因のようでした。
すいません。おさわがせしました。
Parent: 3069  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 246 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑