Character-Encoding
cp:錯誤資訊中使用了哪些引號?
我目前正在擺弄一個垂死的硬碟,在嘗試從中
cp
獲取數據時,我得到了類似的錯誤cp: error reading ‘brokenFile’: Input/output error # comparison: backtick: `, apostrophe '
sed
我現在嘗試通過將錯誤消息轉換為新的呼叫來再次複製失敗的文件cp
(我已經成功了幾次)。但是:有趣的引號是什麼?它們在開始/結束時甚至不同。它不是反引號,也不是撇號。我將它複製/粘貼到我的正則表達式中,但有更好的方法嗎?也許使用撰寫?
生成的字元是
U+2018 LEFT SINGLE QUOTATION MARK
(‘
) 和U+2019 RIGHT SINGLE QUOTATION MARK
(’
)。這些是英語的印刷單引號,是根據您目前的語言環境生成的。如果您目前的鍵盤佈局有一個撰寫鍵,您可以使用Compose``<``'
(左引號)和Compose``>``'
(右引號)輸入它們。但是,如果您想使用其他工具(例如,在您的情況下為
sed
)處理命令的輸出,通常通過將環境變數設置為 來更改本地更LANG
容易C
。這樣,程序將以純 ASCII 格式輸出錯誤消息(更一般地說,所有輸出都是人類可讀的),使用基於文本的工具通常更容易處理。
查找給定字元的有用命令是 Free recode(以前稱為 GNU recode):
$ echo -n ‘’ | recode ..dump UCS2 Mne Description 2018 '6 left single quotation mark 2019 '9 right single quotation mark
或者來自 Debian
unicode
的命令:$ unicode ‘’ U+2018 LEFT SINGLE QUOTATION MARK UTF-8: e2 80 98 UTF-16BE: 2018 Decimal: ‘ ‘ Category: Pi (Punctuation, Initial quote) Bidi: ON (Other Neutrals) U+2019 RIGHT SINGLE QUOTATION MARK UTF-8: e2 80 99 UTF-16BE: 2019 Decimal: ’ ’ Category: Pf (Punctuation, Final quote) Bidi: ON (Other Neutrals)