
携帯、PC、両方で使えるサイトをMySQLで構築中です。
当初、UTF8で構築していましたが、「auブラウザ、いまだにUTF-8が使えず!」という記事発見したことにより、急遽、EUCに変更しました。(http://symple.jp/113.html)
ところが、EUCの場合、漢字がGETコマンドで正しく送信できないことが判明しました。
(FORMタグに accept-charset="euc-jp,us-ascii" を付けても、JIS X0208.1990 の6878文字中、2743文字の文字エンコーディングが正しく検出されず、UTF8と誤認識される。実際にテストで経験済み)
http://www-ise3.ist.osaka-u.ac.jp/miura/?PHP%20G …
私が作りたいサイトは日本語で検索できる必要があるため、やはりUTF8で作らなければならないようです。
質問です。
サーバー側はUTF8で作らなければならないようです。
でも、そうすると、「auブラウザ、いまだにUTF-8が使えず!」に引っかかってしまいます。
このようなサイトは決して少なくないと思いますが、UTF8にも関わらずでAU携帯でも問題なく見れるサイトはどのような工夫をされているのでしょうか?
●MySQLサーバーのデフォルト文字コード
●MySQL の接続照合順序:の文字コード
●テーブルの文字コード
●テーブルの接続照合順序:の文字コード
●フォームの文字コード
をどう設定しているのでしょうか?
またPHPのソースに何かを追加するのでしょうか?
情報提供、宜しくお願い致します。
現在の検索ソースは下記となります。
(県名を漢字で入力し、住所群から対象の住所録を抽出する)
search.php
<?PHP
// サーバーデータベース記録情報接続
require_once '../../config_n_reform.php';
require_once '/usr/share/pear/DB.php';
$db = DB::connect($dsn);
if (PEAR::isError($db)) {
die($db->getMessage());
}
print('接続に成功しました<br>');
$db->query('SET NAMES UTF8');
if (PEAR::isError($db)) {
die($db->getMessage());
}
$sql = 'select * from city_code';
if(isset($_GET['pre_name'])){
$sql = "select * from city_code where pre_name = '" .addslashes($_GET['pre_name'])."'";
}
$res =& $db->query($sql);
if (PEAR::isError($res)) {
die($res->getMessage());
}
while ($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
print($row['pre_name'].'<br>');
print($row['city_name'].'<br>');
print($row['city_kana'].'<br>');
print($row['kyuu_cho'].'<br>');
}
$db->disconnect();
?>
フォーム
<form name="form2" action="search.php" method="get">
<input type="text" name="pre_name" size="25">
<input type="submit" name="search" value="検索"><br />
<input value="pre_name検索開始" type="submit" />
</form>
No.1ベストアンサー
- 回答日時:
AU(古いやつ?)はフォームをGETで送る時にSJISで送られているようです。
なのでEUCにするくらいならSJISをチョイスした方がいいのかな、と。
結局文字化けとは戦わないといけないですけどね。
僕は業務レベルで全部UTF-8派ですけど客から文句言われた事は一度もないです。
とりあえずUTF-8で作るようですので
mb_convert_encoding($_GET['pre_name'],'UTF-8','UTF-8,SJIS,EUC-JP');
これで文字コードを変えてから検索すれば大丈夫です。
有難うございます。やはり、UTF8でサーバーを作り、フォームはエンコードを付けるものなのですね。勉強になりました。有難うございました。 ソースも参考とさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPにてSQLから取得したデータ...
-
MySQLカラム名は日本語と英数字...
-
mysqlがインストールされている...
-
副問合せにLIKE文を使う方法は...
-
コメントが消えてしまいます
-
テーブル作成でエラーが出てき...
-
ODP.NETのバージョン確認
-
Column '' not found.
-
PHPからmySQLに接続できない
-
XAMPPのMySQLを外部から接続で...
-
プライマリーキーの昇順でソー...
-
SQLのVARCHARとVARCHAR2の違い
-
INT型は金額の型に使用するべき...
-
文字コードMS932(Windows-31J...
-
VBAで変数内に保持された二次配...
-
MYSQLで、ファイルを格納する方...
-
列数が多いと結果が行単位に改...
-
エクセルで連勤チェックをした...
-
ADOのバージョンを確認する方法
-
Float型の時の計算結果がおかしい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PDOでDB ページング
-
PHPでMySQLを使った検索のプロ...
-
PHP&MYSQLでの検索システムにつ...
-
プレースホルダを使った複数カ...
-
MySQLでデータ表示
-
PHPでMySQLを使った検索のプロ...
-
MySQLからのデータをページに1...
-
PHPにてSQLから取得したデータ...
-
MySQLでAU携帯にも対応させるた...
-
pdfファイルの管理システム
-
mysqlとphpを使った入力画面で...
-
データを一括で処理する方法に...
-
MySQLカラム名は日本語と英数字...
-
mysqlがインストールされている...
-
副問合せにLIKE文を使う方法は...
-
ODP.NETのバージョン確認
-
エクセルで連勤チェックをした...
-
like句を使って日本語を検索す...
-
VBAで変数内に保持された二次配...
-
SQLのVARCHARとVARCHAR2の違い
おすすめ情報