2017-03-09 71 views
0

您好所有我一直在努力研究,並提出了這樣一個乾淨的方式..sed的 - 除去非標字符

我有一個.sql文件這是充滿了壞字符從別人抄襲和從非標準化文件等粘貼,我一直負責刪除已出現的字符。

一個例子是 -

“ some text here †more text 

數據庫是廣泛的,我不知道的各種非標準UTF-8字符的有....那麼,有沒有sed參數可以刪除所有非標準字符(因爲我不知道確切的字符)?

這些塊在DB標準的HTML和CSS塊,所以有允許的字符數量有限,無論如何,所以我應該去一個龐大的正則表達式IE

[^a-zA-Z0-9`[email protected]#$%^&*()_\-+={[}\] \\|:;"'<,>.?\/] 

作爲,這是存儲HTML這條路線和CSS我看不到需要保留製表符和空格(或者他們會將它保存在文件中)。

以上regexsed聲明似乎靠不住的,有點劈十歲上下。

是否有更簡潔的方式來搜索這些字符並將其刪除?

我試圖回答有什麼建議的SOS很多,但大多數的答案只包括一個或幾個字符..我想擺脫任何不屬於「標準」 UTF-8

回答

0

我覺得這將這樣的伎倆:

iconv -f ORIGINAL_ENCORDING (utf-8) -t utf-8 -c yourfile.sql 
+0

的問題,有沒有通過目錄(多.sql文件),以移動的方式? – Zak

+0

我認爲這將回答你的問題:https://gist.github.com/akost/2304819 – nir0s

+0

這隻適用於,如果我知道什麼是原始編碼是..我不..我可能是多個版本的編碼這個問題 - 我是這個項目的新手,直到現在,對輸入到數據庫的控制權是零.. – Zak