iT邦幫忙

0

utf-8 big5編碼問題

語言為java 開發工具為Eclipse
我的檔案編碼是utf-8-bom
專案環境是ms950
寫進去db要big5

是否有些文字會變成問號沒辦法寫進去db(像"堃")

但如果我把專案環境改成utf-8
就可以正常印在console中不會有問號
但如果改成ms950
部分字變成問號(通常是難字變成問號)

在專案環境為ms950情況下
請問有方法可以在console顯示出完整檔案內容嗎?

附上以下連結為測試程式與txt檔可以試試看

https://drive.google.com/file/d/1Q7eXp51GujrQyTds6Gs_Hqe7LItKRtAp/view?usp=sharing

https://drive.google.com/file/d/1daQoa0fsHRoqm-ove1KpMRmZogLHO9lh/view?usp=sharing

衝碼問題?
froce iT邦大師 1 級 ‧ 2020-11-03 21:38:00 檢舉
啊你db是big5就只能存big5啊...
堃就不在big5的字碼表裡,你只能造字。

2 個回答

0
japhenchen
iT邦大師 1 級 ‧ 2020-11-04 08:55:14

建議把內容encode成unicode ( ♠這種格式) 再存進資料庫,從資料庫讀出後也再decode回來即可,這樣就不會冒出 ??? 的狀況

在下也有同樣的問題,但解法應該不像上面這樣...
(一) powershell 的批次檔 (test.ps1),內容如下
Add-Content D:\test\A.txt "文章" -Encoding utf8
執行後, 發現 A.txt 是 ?? 亂碼。
(二) 但是在 powershell console 下,直接下此單一行命令
Add-Content D:\test\A.txt "文章" -Encoding utf8
卻發現 A.txt 是 OK。 (檔案首行是 "文章" 2個中文字)

0

一般你得先對儲存容器下手。
big5本身包含的字不多。所以你容器(db)就用big5的話。本身就已經沒救了。

雖然還有 japhenchen 說的方法。但那不是治本的問題。也會造成其它問題的存在。(如搜尋、相似值)

其實只要宣告db庫是iso編碼(latin1)。也是可以達到同樣的效果。
一般建議你還是做一下大改變。先將資料庫的編碼宣告改成utf8。就可以一次解決問題了。

我要發表回答

立即登入回答