2010-02-19 41 views
0

在將帶chainese字符的excel文件保存爲csv時,這些字符將轉換爲? (問號)垃圾字符。xls與csv與漢字字符支持

請讓我知道你是否有任何解決方案。我試着將它保存在unicode文本中,它工作正常,但是當我嘗試將它保存爲.csv時,它不起作用。

謝謝

回答

1

我有一個類似的問題,以前的日語字符。當時Excel 2003僅將CSV導出爲Latin1(或者可能是Windows 1352)。我基本上編寫了自己的Excel宏來遍歷行和列,並在CSV文件的內存中建立一個字符串。然後,我用ADODB.Stream自己保存它。這個示例代碼應該讓你開始。

Dim csvdata As String 
Dim CRLF As String 
Dim objStream As Object 

CRLF = Chr(13) & Chr(10) 

csvdata = """key"",""value""" + CRLF 
csvdata = csvdata + """a"",""a""" + CRLF 
csvdata = csvdata + """aacute"",""á""" + CRLF 

Set objStream = CreateObject("ADODB.Stream") 
objStream.Open 
objStream.Position = 0 
objStream.Charset = "UTF-8" 
objStream.WriteText csvdata 
objStream.SaveToFile "test.csv", 2 ' adSaveCreateOverWrite 
objStream.Close 
0

爲什麼你需要一個CSV文件?你需要什麼編碼? UTF-8? GBK?什麼軟件將讀取CSV文件?你使用的是什麼版本的Excel?

如果您瞭解Python,您可以使用xlrd module來讀取Excel文件,格式化數據,對其進行編碼,並將其寫入CSV文件,或者用它來更新數據庫等等。