日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ansi编码_了解字符编码,不再恐惧文件乱码

發布時間:2023/12/20 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ansi编码_了解字符编码,不再恐惧文件乱码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景:

工作上,不同部門經常需要共享文件,偶爾會出現打開文件出現的是一堆亂碼,這時候很多人的第一反應是恐懼,認為是數據傳輸出現錯誤問題,要求發送方再重新傳輸一份。其實主要都是字符編碼不一致的原因,只要了解字符編碼原理,自己做好編碼轉化,一般都能快速恢復正常閱讀。

目標:

了解字符編碼

不再恐懼文件亂碼

1 常見亂碼現象

1.1 txt文件用UE打開是亂碼

1.2 csv文件用打開Excel打開是亂碼

1.3 命令行讀取文件是亂碼

2 常見字符編碼類型

2.1 字符編碼ANSI和ASCII區別、Unicode和UTF-8區別

這篇文章解釋很清晰:字符編碼ANSI和ASCII區別、Unicode和UTF-8區別

2.2 概括

總結起來就是,之所以有這么多編碼,都是為了實現兼容和效率的平衡,兼容性越高的編碼就需要犧牲越大的存儲空間。

ASCII:最簡單的編碼,不能解析中文

ANSI:ASCII的擴展,可以解析中文,兼容差,效率高

Unicode:ANSI的擴展,兼容強,效率低

UTF8:Unicode的擴展,通用

2.3 常用工具打開文件的解析方式

最常用接觸就是ANSI和UTF8兩種編碼

ANSI:Windows,DOS,記事本,UltraEdit,Excel,Oracle

UTF8:Linux,Hadoop,Python、記事本

其中記事本可以自動解析ANSI和UTF8。

如果我們在Windows打開文件出現亂碼,一般都是因為文件是UTF8編碼,用記事本打開就可以正常顯示,把文件另存為ANSI編碼,就可以用其他工具正常打開。

反過來,傳到服務器端后臺打開是亂碼,一般是服務器默認解析UTF8編碼,把文件轉為UTF8編碼就可以正常讀取。

3 Windows轉碼

3.1 記事本轉換

用記事本打開文件,另存為,編碼,一般選ANSI或UTF-8。

3.2 CMD轉換

調用PowerShell的get-content、set-content命令

PowerShell -Command "& {get-content test1.txt -encoding Default | set-content test2.txt -encoding UTF8}"

4 Linux轉碼

調用iconv命令,

iconv -c -f ansi -t utf-8 test1.txt > test2.txt

5 Python轉碼

5.1 解析文件

with open('test1.txt','r',encoding='ANSI') as f:

content_str=f.read()

5.2 將ANSI轉為utf-8

with open('test2.txt','w',encoding='utf-8') as f:

f.write(content_str)

5.3 自動轉碼函數

#chardet.detect有自動判斷文件的編碼類型功能

import chardet

def convert(path,out_enc='utf-8'):

#解碼

with open(path,'rb') as f:

content_bytes=f.read()

source_encoding=chardet.detect(content_bytes).get('encoding')

print(source_encoding)

#讀取文本

with open(path,'r',encoding=source_encoding) as f:

content_str=f.read()

#保存文本

with open(path,'w',encoding=out_enc) as f:

f.write(content_str)

print(out_enc)

總結

以上是生活随笔為你收集整理的ansi编码_了解字符编码,不再恐惧文件乱码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。