shell腳本編碼問題

最近某個腳本的執行經常導致編碼問題。

腳本從遠端mysql數據庫獲取影片中文名,然後再導入本機的mysql中。發現由crontab自動執行的時候獲取的影片名稱都是亂碼,但手動執行腳本卻正常輸出。幾天都是這個問題。今天突然想起以前也有類似問題,在終端執行“echo $LANG",然後在腳本中加”export LANG=xx(之前的輸出結果)“,問題解決。

具體原因不知,個人猜測本地LANG是人爲設定,系統LANG應該是不同的一個值。而crond在執行是應該使用的是系統值,而不是當前用戶設定的值。

同樣的原因,之前發現shell腳本在執行”sort“的時候輸出結果也受LANG的影響。以後寫shell腳本的時候必須注意這個問題了。

發佈了37 篇原創文章 · 獲贊 1 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章