ASCII 控制字符正在以一种半频率的方式进入我维护的数据库中。虽然我计划实施防止它们被编入 SQL 的方法,但我必须首先INSERT
处理数据库中已经存在的字符。
对于初学者,我知道可以使用 SQL进行查找和替换...
UPDATE [table_name]
SET [field_name]=REPLACE([field_name],'[string_to_find]','[string_to_replace]');
PHP 允许您使用数组将多个项目替换为其他内容...
$result = str_ireplace(array('1','2','3','4','5'),'0',$my_string);
那么,有没有一种方法可以构造一个 SQL 查询来替换多个 ASCII 控制字符,而不是循环中的惰性 SQL 查询?
同样重要的是我们如何替换那些控制字符(例如 dec、oct、hex)?
另外我读过回车是控制字符 0~31 的一部分,所以显然我们不想删除这些以确保保留换行符,除非我错过了什么?
这是我现在要经过的参考页面...
我将 XHTML 编码为 application/xhtml+xml 并将以下内容测试为example1.xhtml并在Firefox中显式打开,没有 BYTE ORDER MARK (BOM) ...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
</head>
<body>
<div>
<p>�	



</p>
</div>
</body>
</html>
以下是唯一可以在不创建格式错误的 XML 的情况下使用的字符,另存为example2.xhtml并在Firefox中以无字节顺序标记 (BOM)显式打开...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
</head>
<body>
<div>
<p>	

</p>
</div>
</body>
</html>
我们不想在 SQL 中删除的那些工作字符是......
09 - 水平制表符
10 - 换行
13 - 回车