2017-09-20 62 views
-1

直升機我有一個問題,變音符號..在MySQL它的罰款,我設置你CAND在這個圖片中看到的utf8_general_ci enter image description here導出爲CSV:羅馬尼亞語言字符失敗

在我的網站

它的罰款,你可以看到

enter image description here

但是,當我導出到CSV文件不工作.. 另一個具有變音符的文件中讀取Excel的我,但這不是。

enter image description here

我使用此代碼用於出口

function doCsv(){ 

    var table = document.getElementById("exportTable").innerHTML; 
    var data = table.replace(/<thead>/g,'').replace(/<\/thead>/g,'') 
    .replace(/<tbody>/g,'').replace(/<\/tbody>/g,'') 
    .replace(/<tr role="row" class="odd">/g,'').replace(/<tr role="row" class="even">/g,'').replace(/<\/tr>/g,'\r\n') 
    .replace(/<th style="background-color:#6699ff;">/g,'').replace(/<\/th>/g,';') 
    .replace(/<td>/g,'').replace(/<\/td>/g,';') 
    .replace(/\t/g,'').replace(/\n/g,''); 
    var link = document.createElement('a'); 
    link.download = "exportToCSV.csv"; 
    link.href = "data:application/csv," + escape(data); 
    link.click(); 

如果我把警報它一直很好看:

enter image description here

任何人幫助我嗎?

回答

0

查看%u0218?這意味着東西正在轉換爲Unicode。你不想那樣。你想要utf8(或utf8mb4)。

從表中選擇HEX。對於這些字母:ĂÎŞŢÂ,如果以UTF-8正確編碼:C482 C38E C59E C5A2 C382,則應該得到此十六進制數。請注意,每個帶重音符號的字母變成2個十六進制字節

你的第二次嘗試回來了ĂÎŞŢÂ,這是「Mojibake」爲ĂÎŞŢÂ。它的十六進制是C384E2809AC383C5BDC385C5BEC385C2A2C383E2809A

我討論Mojibake並指出Trouble with UTF-8 characters; what I see is not what I stored中做錯了什麼。

不知何故,您的Excel代碼需要說出口UTF-8,而不是unicode。

而你的表格必須是utf8而不是latin1

而進口必須聲明數據是utf8