【发布时间】:2011-10-28 15:08:44
【问题描述】:
我的数据库中存在隐藏的非 ASCII 字符(空格)问题。
如何将它们替换为普通空格并在插入之前对其进行转换以避免将来出现问题?
我仍然不能 100% 确定发生了什么,但我认为它与非 ASCII 空格有关。任何有助于追踪它的建议都会有所帮助。
这是发生了什么:
我有一个包含关键字的数据库,如果我搜索“测试关键字”,则没有任何显示。我知道“测试关键字”在数据库中。
如果我搜索“测试”或“关键字”,它就会显示出来。
如果我通过以下方式进行查询:
SELECT * FROM keywords WHERE keyword regexp '[^ -~]';(found here)
它将显示“测试关键字” - 让我得出结论,“测试关键字”中有一个带有空格的非 ASCII 字符。
【问题讨论】:
-
ASCII 指的是大多数字符集中的前 128 个字符,拉丁字母和数字等。我不认为这是你的意思。
-
ASCII 空格是普通空格。或许您可以举个例子说明您遇到的问题。
-
除此之外,请描述您遇到的实际问题,而不是您认为应该解决的问题,即使您不确定发生了什么。不好的问题得到不好的答案。
-
您是指控制还是不可打印字符?空间被认为是可见和可打印的,而不是隐藏的。
-
@Dan Grossman 实际上 ASCII 是前 128 个字符