關於go語言如何獲取檔案字元編碼格式的問題?

時間 2021-06-01 11:29:17

1樓:xjdrew

實際上是沒有100%準確的方法識別文字的編碼的,因為很多編碼空間是有重疊的。比如utf-8和gb18030,我相信除了ascii碼以外,應該還有不少重疊的編碼。utf8兩位元組編碼範圍(C0-DF) * (80-BF) 跟gb18030的兩位元組範圍(81-FE) * (40-FE),重疊範圍挺大的,任取乙個重疊的值0xc89e看看:

>>> print('\xc8\x9e'.decode("utf-8"))

>>> print('\xc8\x9e'.decode("gb18030"))

葹單純檢測位元組序列0xc8, 0x9e對兩種編碼都是合法的。

如果給定的文字中都是重疊的編碼和ascii碼,那麼單純檢測編碼是無法區分的,只有人開啟看看在哪種編碼下語意合理。

不過如果不需要考慮各種意外,且只需要區分utf8和gb18030,那麼直接呼叫utf8.FullRune:utf8 - The Go Programming Language

如果要玩深入點可以看下擴充套件的text庫。

Python如何獲取呼叫檔案的路徑?

彭雨嫣 a.py from com.company.testForInspect.c import just print if name main just print hey it s a b.py from com.company.testForInspect.c import just pri...

C語言中怎樣最好地從標準輸入流中獲取字串,並轉換為int陣列?

用 fgets 限定長度,保證輸入的記憶體安全 用 strtoint 簡單轉換。char str 50 fgets str,50 stdin strtoint 可以寫成過程,voidstrtoint char str int integer 如果使用 stdlib.h 的 atoi 對於太長的字串,...

如何批量去除檔名中的某些字串?

醫學插畫動畫阿杜 看到了樓上何先生的批處理,感覺很讚啊!在其基礎上我加了點輸入指定資料夾路徑,這樣就不用吧這個批處理放在某資料夾才能用了!請儲存為 批量修改或去除資料夾下的檔案 夾 名中字串.cmd echo off set p loc 請輸入索要操作的資料夾路徑 set p str1 請輸入要替換...