我有以下字符串由客户端发送到服务器:
3%D3%E1f%7C%AF%B0a%B58%81%92%F9M%90%0CD%A0Y%9C // string in the actual URL
3Óáf|¯°aµ8’ùMD Yœ // var_dump($_GET)
原始字符串应该是:
33D3E1667CAFB061B5388192F94D900C44A0599C
我的问题是我不知道如何对此进行编码/解码以便我可以执行数据库搜索,因为归类类型不匹配。我尝试了 urlencode
/urldecode
、mb_string_convert
、utf8_encode
、iconv
,但是没有运气。有什么想法吗?
Laravel 在尝试使用字符串进行搜索时抛出以下异常:
'SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE)...
我无法控制客户端的编码。奇怪的值来自使用 Laravel 的 Log::imfo()
最佳答案
您是否尝试过发送 post 请求而不是 get 请求,并将字符串作为实际字符串发送。
或者也许将您的数据库编码更改为 UTF-8(它可以很好地处理瑞典语,无需选择拉丁-瑞典语版本)。
关于PHP:$_GET 中的奇怪字符串编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34547298/