2017-03-09 35 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