2017-02-16 49 views
0

Git是當core.quotepath = on如何編碼/解碼像git一樣的unicode?

魔神転生2.CT將轉換爲\351\255\224\347\245\236\350\273\242\347\224\2372.CT

如何解碼在Perl或的NodeJS /編碼?


爲什麼我想這樣做?

因爲我有混帳

一個老perl腳本但是當我使用core.quotepath = off

我的perl腳本不能處理Unicode的

它將成爲擳?頠Y?2.CT矇簫?癟瞼?癡罈瞽癟??2.CT

在的NodeJS utf8工作得很好,但不知何故,當我執行一些git cmd時失敗了

like git commit -m . --dry-run --short


this is my old perl script

回答

0

s{\\(\d{3})}{ chr(oct($1)) }eg一個真棒插件。結果是UTF-8。如果您需要Unicode代碼點,請跟進decode_utf8


您可能還需要處理其他轉義序列。

my %escapes = (
    "n" => "\n", 
    "r" => "\r", 
    # ... 
); 

s{\\(?:([0-7]{3})|(\W)|(\w))}{ 
    defined($1) ? chr(oct($1)) : 
    defined($2) ? $2 : 
    $escapes{$3} // do { warn("Unrecognized escapes \\$3"); "\\$3" } 
}seg; 
+0

thx,我做了一個nodejs版本解碼/編碼由你的答案 – bluelovers

0

沒有爲node.js的Unicode

# debian 
sudo apt-get install unicode-data # optional 
# gentoo 
sudo emerge unicode-data # optional 

npm install unicode