我试图使用UTF-8并遇到麻烦.
我尝试了很多东西; 这是我得到的结果:
????而不是亚洲人物.即使是欧洲文本,我也得到Se?or了Señor.Señor或新浪新闻为????.Sefor Señor.我究竟做错了什么?我该如何修复代码?我可以恢复数据,如果是,如何恢复?
我的数据库中隐藏的非ASCII字符(空格)有问题.
如何用普通空格替换它们并在插入之前转换它们以避免将来出现问题?
我仍然不能100%确定发生了什么,但我认为这是非ASCII空间.任何帮助追踪它的建议都会有所帮助.
这是发生了什么:
我有一个包含关键字的数据库,如果我搜索"测试关键字",则不显示任何内容.我知道"test keyword"在数据库中.
如果我搜索"test"或"keyword",它会显示出来.
如果我查询:
SELECT * FROM keywords WHERE keyword regexp '[^ -~]';(在这里找到)
它将显示"test keyword" - 给出结论,在"test keyword"中有一个非ASCII字符和空格.
相关问题如何在MySQL中找到非ASCII字符?.
我想在下面给出的表中检查col1和col2,以了解非键盘字符存在的情况.
+------------+----------+
| col1 | col2 |
+------------+----------+
| rewweew\s | 4rtrt |
| é | é |
| 123/ | h|h |
| ëû | û |
| ¼ | ¼ |
| *&^ | *%$ |
| #$ | ~!` |
+------------+----------+
Run Code Online (Sandbox Code Playgroud)
我想要的结果看起来像
+--------+-------+
| é | é |
| ëû | û |
| ¼ | ¼ |
+--------+-------+
Run Code Online (Sandbox Code Playgroud)
在我的情况下,允许使用英文键盘中的所有字符,我只需要查找具有英文键盘中不存在的字符的行,如汉字等.
我从链接中获得了下面提到的查询如何在MySQL中找到非ASCII字符?
SELECT * FROM tableName WHERE NOT columnToCheck REGEXP '[A-Za-z0-9.,-]';
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为字符~` …
我的问题是如何从 MySQL 服务器中的 utf-8 列中查找特定字符集?
请注意,这不是重复的问题,请仔细阅读所问的内容,而不是您的想法。
目前,MySQL 确实可以与 utf-8 完美配合,并显示所有类型的不同语言,并且我在数据库中查看不同语言没有任何问题。我使用 SQLyog 连接 MySQL 服务器,所有 SELECT 结果都很完美,我可以看到西里尔文、日语、中文、土耳其语、法语、意大利语或阿拉伯语或任何类型的语言混合并完美显示。my.ini 和脚本也完美配置并且运行良好。
这里How can I find non-ASCIIcharacter in MySQL? 我看到有些人回答了这个问题,他们的答案也非常适合查找非 ASCII 文本。但我的问题很相似,但没什么不同。我想从MySQL服务器中的utf-8列中找到特定的字符集。
比方说,
select * from TABLE where COLUMN regexp '[^ -~]';
Run Code Online (Sandbox Code Playgroud)
它返回所有非 ASCII 字符,包括西里尔字母、日语、中文、土耳其语、法语、意大利语、阿拉伯语或任何类型的语言。但我想要的是
SELECT * from TABLE WHERE COLUMN like or regexp'Japanese text only?'
Run Code Online (Sandbox Code Playgroud)
换句话说,我只想选择日语编码文本。目前我可以用它看到所有类型的语言;
select * from TABLE where COLUMN regexp '[^ -~]';
Run Code Online (Sandbox Code Playgroud)
但我只想选择日语、俄语、阿拉伯语或法语。怎么做?
数据库包含所有语言混合行和 UTF-8。我不确定MySQL服务器是否可以实现?如果不可能,那么该怎么做?
多谢!