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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux系统下文件字体乱码的解决方案

發布時間:2025/3/21 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux系统下文件字体乱码的解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

???????在Linux系統下經常會遇到從網上下載的文件,打開是亂碼的情況,尤其是含有中文字符的txt文件或者是一些后綴為 .srt、.ass的字幕文件,其原因大多是因為這些文件的編碼格式為gb18030編碼格式,而這種文件的編碼格式雖然在windows下可以直接打開,在linux下卻會出現奇奇怪怪的亂碼情況。作為日常使用ubuntu系統的偽技術宅,碰到文件打開是亂碼的情況不說遇到100次,也至少遇到了有50次,對于這種問題的解決方案也頗有心得。

???????說是解決方案,聽起來好像很復雜,其實真正處理起來,不過是一行語句的問題,先附上語句:

sudo iconv -f "gb18030" -t "utf-8" original_filename > new_filename

看,其實很簡單,就是修改一下original_filename和new_filename為自己要更改的文件即可,簡單地說就是把原有的gb18030編碼格式的文件轉化為utf-8編碼格式的文件。

???????到此其實可以說,解決方案基本上已經ok了,但是近來因為暑假癱在家,經常刷電影,就發現呀,有時候字幕下載下來,尤其是那種壓縮包的字幕解壓后是一個文件夾,可氣的是一個文件夾的字幕都是亂碼的,這樣一個文件一個文件地去轉碼,煩都煩死了。作為一個不太稱職的碼農,我也是有想要化繁為簡的沖動的,于是自己從網上扒了些bash腳本的編寫教程,東拼西湊,整了個批量轉換一個文件夾內的亂碼文件的腳本,腳本代碼量比較少,就在此附上了:

#!/bin/bash # batch conv "gb18030"-typed file to "utf-8"-typed filepath=$1 # avoid filename having spaces files=$(ls $path | tr " " "\?") for filename in $files dofile=${path}"/"${filename}# split string by '.'OLD_IFS="$IFS"IFS="."array=($filename)IFS="$OLD_IFS"array_length=${#array[@]}if [ $array_length -le 1 ]thenecho "Fault file"continuefi# obtain all substring before the last '.'part1=""for (( i=0; i<$((array_length-1)); i++ ))do part1=$part1${array[$i]}"."donepart1=${part1%?} # delete the last character '.'# group new filenamefilename_new=${path}"/"$part1"-new."${array[array_length - 1]}echo $filename_newsudo iconv -f "gb18030" -t "utf-8" $file > $filename_new done

執行時,只需執行

bash xxxx.sh dir_path # xxx.sh是腳本名稱,dir_path是文件夾的路徑

即可。

總結

以上是生活随笔為你收集整理的Linux系统下文件字体乱码的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

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