PHP+MyAdmin INSERT文字化け
PHPを利用しテキストファイルのアップロード、その後ファイルを読込INSERT。
上記のような流れでデータベースに値を代入するスクリプトを作成中ですが
タイトルの通り、代入すると文字化けが起こり、上手く代入する事が出来ません。。。
初歩的なご質問かと思いますが宜しくお願いします。
データベース
・phpMyAdmin さくらインターネット レンタルサーバー利用
・全てUTF-8のカラム設定
PHP/HTMLファイル
・全てUTF-8フォーマットにて保存・アップロード
INSERTに利用するファイル
・某サイトよりダウンロードしたSJISフォーマットのテキストファイル(タブ区切り)
実際の動作(1)
1.テキストファイルダウンロード
2.ブラウザよりテキストファイルアップロード
3.ブラウザよりテキストファイル読込・代入
【結果】文字化け発生
実際の動作(2)
1.テキストファイルダウンロード
2.一度テキストエディタで開きSJIS⇒UTF-8へ保存
3.FileZillaにてサーバーへアップロード
4.ブラウザよりテキストファイル読込・代入
【結果】正常
実際の動作(3)
アップロードするPHPへ
mb_convert_encoding($FILE,"UTF-8","AUTO")
mb_convert_encoding($FILE,"UTF-8","SJIS")
mb_convert_encoding($FILE,"UTF-8","SJIS-WIN")
等の記述を変更しながら実験
【結果】文字化け発生
Googleにて色々検索しマルチバイト関数を有効にとの情報があり
http://manual.xwd.jp/ref.mbstring.html
を参考に設定
(1)(2)(3)を実行するが文字化けは変わらず。
アップロード後の文字エンコード判定を実施
http://www.phppro.jp/qa/388
・ダウンロードそのままをブラウザよりアップロード
・テキストダウンロード後、エディタにてUTF-8に保存したファイルをブラウザよりアップロード
どちらもSJISと判定される。
記述方法も曖昧なまま
setlocale(LC_ALL, 'ja_JP.UTF-8');
も実験しましたが無理でした。
SQL実行前に
$test = mysql_query('SET NAMES utf8', $link) or die("文字コードを指定できませんでした。");
$test = mysql_query($sql, $link) or die("クエリの送信に失敗しました。");
の記述も問題なのでしょうか。
問題はアップロード時に問題、、、?
サーバー側の設定の問題、、、?
正直お手上げです。(涙
どうかご教授お願いいたします。
お礼
ありがとうございます。