
[已解決]sort能正確處理utf8格式的文本嗎/L[OCALE]locale這個參數怎么用最后由 killer3k 于 -10-7 21:25操作系統:win7用了chcp 65001也沒用,輸出依然是亂碼。改了CMD窗口的字體,type命令倒是能正確顯示utf8格式的文本文件,不會顯示亂碼,但sort命令輸出的依舊是亂碼。如果先把文本轉換為ANSI即GBK編碼后,用sort命令倒是可以處理了,但這樣一來又可能造成文本部分字符丟失。另外,“/l[ocale] locale”這個參數怎么用?這個完全搜索不到有用的資料,要么沒說,要么照抄幫助文件,要么就是抄http://www.bathome.net/viewthrea ... &highlight=sort這篇,文章最后都是這句話,“沒講的內容,/l參數,這個是區域設置相關,我也沒弄懂。”復制一下srt命令幫助: /L[OCALE] locale用指定的區域設置替代系統默認區域設置。 C 區域設置產生最快的排序順序并且是當前 的唯一其他選擇。排序總是不分大小寫的。還有從微軟幫助網站上復制來的內容:/l <locale> 重寫由系統默認區域設置(即在安裝過程中選擇的語言和國家/地區)定義的字符排序順序。注解:目前,默認區域設置的唯一替代方法是 C 區域設置,它比自然語言排序更快(它根據字符的二進制編碼進行排序)。26個英文字母的大小寫我都試了,除了大寫C,其它都會顯示“無效的區域設置”,zh-CN、“en-US、0804之類的也試過。至于sort /l C,這個參數用了也不知道會起什么作用。最后,我想問一下,type,findstr等命令可以通過改變活動代碼頁,命令窗口字體等來解決不能正確處理utf8中文文本的問題,那么,sort命令到底有沒有辦法正確顯示utf8文本?如果能確定sort命令本身無論如何都做不到的話,我就死心了,不折騰了。還有,有沒有可以替代sort的第三方程序,要能按拼音排序的。比如說linux下sort的windows版本能做到按拼音排序嗎?我在電腦上找到一個十多年前的windows版本的linux下的sort命令,簡單試了一下,不太會用,但貌似是按unicode排序,也不知道有沒有相關區域設置的參數。我現在主要用notepad2,notepad2沒有指定從第幾列開始排序的功能(可以變通做到,但操作不方便),所以是用批處理來輔助完成按指定列排序的功能,但無法處理utf8格式的文本。notepad2的功能畢竟還是弱了點,所以一直準備換一個,但這些年都沒找到十分滿意的文本軟件。最近準備好好學習一下VIM怎么用,VIM自身的sort命令依然是只能按照unicode排序,不能按拼音排序(據說要用插件,但是我也沒找到)。不過VIM可以調用外部命令,和CMD的sort結合,可以完美解決ansi編碼(GBK,cp936)文本按拼音排序的問題,但是無法解決utf8文本按拼音排序的問題。順便說一下,我感覺CMD的sort命令排序的速度比我試過的文本軟件都快,尤其是那些利用插件提供排序功能的軟件。

