為什麼這篇VBA Str鄉民發文收入到精華區:因為在VBA Str這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者yuanta (BIGGAN)看板Soft_Job標題[請益] excel vba 寫utf8時...
抱歉 不知道應該po哪裡
這裡高手很多 不知道找不找的到解答
目前用excel vba產utf-8檔案給一支程式吃(java)
產出來的檔案直接用ultraEdit或notePad++看都很正常
但是 我自己寫java去讀此檔,會發現此檔案的第一行首碼會是空白
只有第一行會這樣哦
也就是用excel vba寫一個內容為"12345test"的utf-8檔
用java去讀 str.length = 10, str.substring(0) = 空白
不知道有人碰過這樣的狀況嗎,因為我一直google不到有人有同樣的情形
雖然我一直覺得是excel vba的adodb.stream寫utf8有bug
但我不知道excel vba的原理
因為我試著產過 big5(繁體 及 gb2312(簡體 都沒有這個問題
感謝
簡附程式如下
--Excel vba
Set fsT = CreateObject("ADODB.Stream")
fsT.Type = 2 '2:text
fsT.Charset = "utf-8"
fsT.Open
fsT.Position = 0
fsT.WriteText "12345test", 1 '1:write in line
fsT.SaveToFile "D:\temp\test.txt" 'Save File
fsT.Close
--Java部份
BufferedReader in = new BufferedReader(new InputStreamReader(new
FileInputStream("D:\\temp\\test.txt"), "utf-8"));
while ((str = in.readLine()) != null) {
System.out.println(str.substring(0, 1));
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.184.246.138
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1439348089.A.7A5.html
感謝提醒 即使是固定字串如範例"12345test" 首碼還是會有一個空白
※ 編輯: yuanta (175.184.246.138), 08/12/2015 11:06:14
版上果然高手很多 太感謝了
什麼時候才可以拿到2m T.T
結論: 在開一個binary type去SKIP bom就可以了
※ 編輯: yuanta (175.184.246.138), 08/12/2015 11:41:29