環境:Apache2&PHP5&MySQL5
MySQL5のデータを、SQL文を使いcsv形式でダウンロードさせると文字化けします。
--
<?php header("Content-Type: application/octet-stream"); ?>
<?php header("Content-Disposition: attachment; filename=output.csv"); ?>
<?php
$srv = "localhost"; // サーバー名
$id = "root"; // ユーザーID
$passwd = "******"; // パスワード
$dbn = "sample"; // データベース名
$sql = "SELECT * FROM result"; // SQL文
$db=mysql_connect($srv,$id,$passwd);
mysql_select_db($dbn,$db);
$rs=mysql_query($sql,$db);
for($i=0; $i<mysql_num_fields($rs); $i++){
print(mb_convert_encoding(mysql_field_name($rs,$i),"SJIS","EUC-JP").",");
}
print("\n");
for($j=0 ;$j<mysql_num_rows($rs); $j++) {
for($k=0; $k<mysql_num_fields($rs); $k++) {
$str=mysql_result($rs,$j,$k);
print(mb_convert_encoding($str,"SJIS","EUC-JP").",");
}
print("\n");
}
mysql_close($db);
---ダウンロードしたCSVは半角英数文字はそのまま出ますが、
日本語(全角)が、?に化けます。(下記の参照してください)
242144444442008/7/315?1E+18??????????????
2521444kojiide2008/7/330?1E+18??????????????
2621444kojiide2008/7/330?1E+18??????????????
---
print(mb_convert_encoding($str,"SJIS","EUC-JP").",");
でSJISになっていると思うのですが、どなたかアドバイスいただけると幸いです。
No.1ベストアンサー
- 回答日時:
MySQLから取得したデータは本当にEUC-JPですか?
DB接続後、
mysql_query("SET NAMES eucjpms",$db);
としてからSELECT文を実行してみてください。
この回答への補足
status;
で確認したところ、charactersetはすべてsjisでした。
ただ初心者なもので、sjisの場合
print(mb_convert_encoding(mysql_field_name($rs,$i),"SJIS","EUC-JP").",");
print(mb_convert_encoding($str,"SJIS","EUC-JP").",");
の2行だと思うのですが、書き方がわかりません。
あつかましいですが、アドバイスいただけると幸いです。
ありがとうございました。
>MySQLから取得したデータは本当にEUC-JPですか?
status;
で確認したところ、charactersetはすべてsjisでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルに入っているデータと...
-
【添削願】クエリ文、エラーが...
-
XAMPPで画面が真っ白になります。
-
MySQLのデータを使ってプルダウ...
-
MySQLから取得した値をPHPを使...
-
PHP/MySQL SQLエラーについて。
-
sqlから多次元配列に要素を格納...
-
以下エラーの修正方法についてC...
-
MySQLでデータベースにデータin...
-
実行時エラー3131 FROM 句の構...
-
SELECT文を発行して、ACCESSよ...
-
php データ削除
-
phpとmysqlで抽出
-
ヒアドキュメントでSQLを書く事...
-
csvをDBへ読み込んだら、NULLが...
-
MySqlのテーブルのサイズを取得...
-
PHPからMySQLへの検索
-
if文が上手くいかない
-
PHPで[]の使い方について
-
ResultSetインターフェイスでの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルに入っているデータと...
-
sqlから多次元配列に要素を格納...
-
SQL文2つ実行
-
phpのエラーについてです
-
stringaddslashes 半角¥が消える
-
mysql_fetch_objectのエラー
-
XAMPPで画面が真っ白になります。
-
XAMMPが起動しません。
-
縦に長い<table>でなく横に長い...
-
PHP+mysqlでSQL文に文字数制限...
-
会員登録したらメールが送られ...
-
Resource id #3 をフィールドの...
-
MySQLのデータを使ってプルダウ...
-
PHPで絞り込み検索結果の件数を...
-
MySQLのUPDATE実行結果を受け取...
-
mysql_query等でレコード数を変...
-
DB(MySQL)から複数行のデータを...
-
住所録を作りたい
-
CSVをダウンロードさせた際、CS...
-
エラーの意味と対策
おすすめ情報