2016-04-20 1 views
1
Below are my code used to generate csv file. 
My problem is UTF-8 characters are not coming correctly. 
even I tried iconv also, but no result. 

PHP CODE 
----------------- 

$コン=にmysql_connectを( 'ローカルホスト'、 'ルート'、 '')を用いて、 $ db_selected = mysql_select_db( 'test'、$ con); mysql_query( "SET NAMES utf8"); $ qry_res = mysql_query( "SELECT * FROM table 2");エクスポートPHP

$filename = "test.csv"; 
$fp = fopen('php://output', 'w'); 
//$header = array('id','name'); 
$header = array("Id","Name"); 
header('Content-type: application/csv;charset=utf-8'); 
header('Content-Disposition: attachment; filename='.$filename); 
fputcsv($fp, $header); 

while($data = mysql_fetch_row($qry_res)){ 
    fputcsv($fp, $data); 
} 

exit; 
------------------------------------------ 
Table value: 
----------------------- 
Id Name 
2 traducción de idiomas 
3 תרגום שפות 
4 language translation 
7 Tłumaczenie na język 

Result: 
Id Name 
2 traducción de idiomas 
3 ????? ???? 
4 language translation 
7 T?umaczenie na j?zyk 

Thanks in advance. 
+0

わかりません。 Content-Type "text/csv; charset = UTF-8"を使用すると、アプリケーションはエンコードなしでバイナリデータを意味します。出力エンコーディングは、1バイトのLatin-1であるようです。また、PHPのことを忘れてしまったjava: "\ ufeff"の中で、WindowsのUFFでUnicodeを識別するためのBOMをコンテンツの冒頭に記述したいかもしれません。 –

+0

ExcelはUTF-8については悪名高く悪いです。おそらくちょうどあなたがやっているように見えるUTF - 8のCSVファイルを生成し、Excelでデータのインポートを行うことです。インポート時にファイルの文字エンコーディングを指定することも、Open Officeのようなものを使用することもできます。 – CD001

答えて

3

あなたのヘッダーの後に以下を追加してください:

echo "\xEF\xBB\xBF"; // BOM header UTF-8 
+0

試してみましたか@Sakthi – KiwiJuicer

+0

それはうまく動作します。 遅く応答して申し訳ありません ありがとうございます。 – Sakthi

+0

返事をありがとう。これを正解、歓声として受け入れることもできます – KiwiJuicer

関連する問題