我有一个小问题,例如我在数据库中添加了一个包含一些字符的链接,例如:é、á、ą 和其他类似的字符。现在,我的问题是当我想从数据库中选择这个链接时,在数据库中这些字符是自动编码的(utf8),但是当我想选择类似的东西时
SELECT * FROM `table` WHERE `link`='http://tést.tld'
不起作用,因为在我的数据库中 é 被编码了。我可以在这里做什么?
我不知道如何更准确地解释,我希望你明白我需要什么。
最佳答案
您在查询中传递了无效的 URI:
http://tést.tld
URI 只包含 US-ASCII 字母,é
不是这样。您要么将其存储错误,但很可能您已经看到您需要为该 URI 获取 PUNY-CODE/正确的 url 编码。
您如何将这些 URI 存储到您的数据库中?作为有效的 URI 还是作为 UTF-8?
编辑:
您存储 utf-8 字节序列 urlencoded入数据库。你需要 split the URI你正在寻找它的部分,相应地编码部分(例如路径部分的 urlencoding,域名的微不足道的代码),重新构建完整的 URI 并在你的数据库中搜索它。
关于php - Mysql选择非a-z字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7944997/