[請益] excel vba 寫utf8

看板Soft_Job作者 (BIGGAN)時間10年前 (2015/08/12 10:54), 10年前編輯推噓3(302)
留言5則, 5人參與, 最新討論串1/1
抱歉 不知道應該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

08/12 10:59, , 1F
要不要讀進來前先掃ㄧ遍資料 確定無空白行 再讀取
08/12 10:59, 1F
感謝提醒 即使是固定字串如範例"12345test" 首碼還是會有一個空白 ※ 編輯: yuanta (175.184.246.138), 08/12/2015 11:06:14

08/12 11:13, , 2F
應該是vba有輸出BOM U+FEFF 在開頭
08/12 11:13, 2F

08/12 11:14, , 3F
google: vba utf8 bom
08/12 11:14, 3F
版上果然高手很多 太感謝了 什麼時候才可以拿到2m T.T 結論: 在開一個binary type去SKIP bom就可以了 ※ 編輯: yuanta (175.184.246.138), 08/12/2015 11:41:29

08/12 13:23, , 4F
搜尋良葛格 編碼 有完整介紹
08/12 13:23, 4F

08/12 15:47, , 5F
高手果然多,讚
08/12 15:47, 5F
文章代碼(AID): #1LohLvUb (Soft_Job)