本文是針對越獄版iPhone手機的,手機沒有越獄就別看了,看了也沒辦法用。 越獄版的iPhone當然是為了跟電腦一樣做各種有趣的事情的。 但通常越獄的iPhone在命令行都無法處理中文,比如你的播放器裡面的中文歌曲名,列出來全部是亂碼的樣子。類似下麵的圖: 輸入中文也做不到,在終端視窗輸入中文,只會 ...
本文是針對越獄版iPhone手機的,手機沒有越獄就別看了,看了也沒辦法用。
越獄版的iPhone當然是為了跟電腦一樣做各種有趣的事情的。
但通常越獄的iPhone在命令行都無法處理中文,比如你的播放器裡面的中文歌曲名,列出來全部是亂碼的樣子。類似下麵的圖:
輸入中文也做不到,在終端視窗輸入中文,只會收到一串的警告音,什麼也輸入不上去或者同樣是一串亂碼顯示。
這樣很多強大的命令行工具也不能用了,比如find/grep。
設置命令行的編碼方式是無法成功的,預設情況下命令行只支持"C"的編碼方式,也就是CP-1252。這種方式只支持ASCII字元。
經過一段研究,發現是ios終端預設沒有安裝編碼文件,這也是理所當然,不越獄,標準的iOS要編碼文件幹啥用,GUI界面都是使用自己的規則處理編碼。
這個編碼文件可以直接在macOS電腦上拷貝,iOS跟macOS的編碼文件是通用的。通常我是用en_US.UTF-8編碼,這種編碼對中西文的支持都比較完善。
編碼文件路徑在/usr/share/locale/en_US.UTF-8/
文件夾,完整拷貝出來。保存到iOS上相同的路徑。
直接用scp拷貝應當算最方便的:
ssh [email protected] #連接到iPhone
mkdir -p /usr/share/locale
cd /usr/share/locale
# 下麵的用戶名、IP請替換成macOS對應的用戶名和IP地址
scp -r [email protected]:/usr/share/locale/en_US.UTF-8 .
echo "export LC_ALL='en_US.UTF-8'" >> ~/.profile
# 下麵退出ssh, 重新連接iPhone就成功了,這是為了讓修改之後的.profile設置生效
此時終端已經能夠友好的處理中文了: