Mysql
如何在 MySQL 中轉義特殊字元
當我
select * .. | mysql ... > /tmp/file
從帶有文本的表中進行操作時,有一些有問題的字元會阻止我使用copy
(postgres)或load into
(mysql)將其載入到不同的數據庫中。諸如製表符、換行符之類的字元會自動轉換為\n
and\t
,但一些有問題的字元是 escape^[
、 CR^M
、^U
、^Z
、^F
,^H
也許還有其他我以前沒見過的字元。通常我會像 一樣替換它
echo "select * .." | mysql .. | sed 's/\r/\\r/g'
,但是那裡有太多未知字元。因此,與其在選擇後替換它們,我想要一個檢索已經轉義的文本的函式(我想刪除它們也可以)。我該怎麼做?
要轉義除 NULL、新行和製表符之外的所有特殊字元:
select * .. | mysql ... | sed 's/[\x04-\x08\x0B-\x1F\x7F]/ /g' > /tmp/file
有用的連結: