お世話になります。
エクセルにて作られたCSVファイルをMySQL内にアップロードする場面があるのですが、à è éなどのフランス語のアクサンが文字化けしてしてしまいます。(化けた形でインサートされる)
以下は、現在のスクリプトの一部(質問文として余計な部分は省略)です。色々と試すものの上手くいかずで・・・
何処を不適切なのかアドバイス頂けると幸いです。
if(is_uploaded_file($_FILES["upfile"]["tmp_name"]) AND $auction_no > 0) { if(move_uploaded_file($_FILES["upfile"]["tmp_name"], "csv/" . $_FILES["upfile"]["name"])){ chmod("csv/" . $_FILES["upfile"]["name"], 0777); $upload = "./csv/".$_FILES["upfile"]["name"]; if($upload){ $sjis = file_get_contents($upload); $utf8 = mb_convert_encoding($sjis, 'UTF-8', 'SJIS-win'); file_put_contents($upload, $utf8); function formatting_to_sql($v) { //空白文字を除去 $v = trim($v); if($v != ""){ if( preg_match('/[^\d]/',$v) ){ //数字以外の文字を含む場合はテキストとして判別して文字コードを変えて返す return mb_convert_encoding($v, "UTF-8", "SJIS"); } if( preg_match('/^0+$/',$v) ){ //テキストが全部0だったら0にして返す return 0; } elseif($v > 2147483646){ return $v; } else { //テキストが数字で0以外の数字があったら先頭の0を省いて返す return ltrim(preg_replace('/^0*([1-9][0-9]*)$/','$1',$v,1)); } } } $fp = fopen($upload, "r"); //一行ずつCSVからデータを取り出しつつループ $i = 0; while($line = fgetcsv($fp)){
ご教示ください。
よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/10 06:03