iT邦幫忙

1

如何寫批次檔自動 big5 轉 utf-8 檔案格式

公司的系統每天會把發票XML檔產出並自動上傳到發票平台
上傳結果是沒問題只是平台上中文字部份顯示亂碼...
查了原因是XML檔案格式不對,如下圖紅框

https://ithelp.ithome.com.tw/upload/images/20190111/20102808OVsexScjOf.png

請問要如何寫出在WIN10底下
設定固定時間並執行特定資料夾
再把資料夾內的檔案轉換成utf-8後覆蓋原始檔案
或輸出另一個資料夾也可以

麻請高手幫幫忙
小弟只會很簡單的指令QQ

hon2006 iT邦大師 1 級 ‧ 2019-01-11 14:42:41 檢舉
https://ss64.com/ps/set-content.html
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
2
何必問
iT邦好手 1 級 ‧ 2019-01-12 02:12:48
最佳解答

https://gallery.technet.microsoft.com/scriptcenter/Convert-Files-To-UTF-8-5c58db5e

Get-Content .\test.txt | Set-Content -Encoding utf8 test-utf8.txt

with powershell.

看更多先前的回應...收起先前的回應...

這個不錯...
改一下就可以符合了.

jetaime iT邦新手 5 級 ‧ 2019-01-15 09:55:24 檢舉

請問一下,依照那個網址執行結果需要手動輸入
SourcePath:
DestinationPath:
Encoding:
程式的部分要如何修改可以自動帶入?

譬如設定好
SourcePath: D:\1
DestinationPath: D:\2
Encoding:utf8

執行完結果就產出在D:\2

小弟完全沒寫過powershell
有試著用自己的方式去寫
依然無法成功...

powershell ".\Convert-Encoding.ps1 -SourcePath D:\1 -DestinationPath D:\2 -Encoding utf8"

jetaime iT邦新手 5 級 ‧ 2019-01-15 15:46:53 檢舉

已解決!
非常謝謝以上提供意見的高手

2
WilliamHuang
iT邦研究生 1 級 ‧ 2019-01-11 10:54:50

http://xml.ascc.net/zh/utf-8/faq.html

我只是路過的假面騎士
請自行消化

2

一般來說,如果可以從你們系統產生出來的就是utf8編碼檔案,是最好的處理方式。
畢竟xml輸出格式都可以指定成utf8格式了。沒道理不能跟著一起輸出utf8編碼的檔案才對。

但如果是很舊的系統我就無話可說了。

如真不能從系統方面解決的話。你就只能找一下可轉換編碼的程式去跑了。
已經有人提供不少的東西可以讓你使用。

我個人會推 ConvertZ 這一套。會自動判斷編碼而非強制轉換。

jetaime iT邦新手 5 級 ‧ 2019-01-11 16:29:30 檢舉

公司系統的確很舊,只能輸出txt的big5編碼文字檔。
原則上我們是套用電子發票所規定的XML格式輸出檔案再自動上傳
輸出後的檔案內容中文都沒問題
就是差在檔案格式是big5編碼
有試著用NotePad++去轉成utf8編碼,上傳後中文才正確
由於發票開立有很多種模式
每一個模式都必須把檔案丟到特定的資料夾再依排程上傳到雲端平台
所以才會有以上的需求

由於是每天自動上傳
現階段是不考慮使用NotePad++或ConvertZ之類的第三方軟體去手動轉換再上傳平台

ConvertZ是可以命令式的,所以你可以用一個排程來處理。
你可以找一下。 這裏有 http://fw-william.blogspot.com/2013/12/convertz-command-line.html
可以參考。

剩下來的就是你要如何去處理bat檔的問題了。

我要發表回答

立即登入回答