我的应用程序geting来自输入字段的文本,将它通过ajax发布到php文件,以便将其保存到db。
var title = encodeURIComponent($('#title').val());
如果我逃避()标题就可以了,但我有“+”字符的问题。所以我使用encodeURIComponent()。
现在我遇到了德国特殊字符的问题,例如“ö”“䔓ü”它们会像crypdet一样显示出来......
有一个想法我该如何解决这个问题?
THX
答案 0 :(得分:1)
我认为这与编码有关:您的HTML页面可能使用UTF-8,特殊字符的编码方式如下:
>>> encodeURIComponent('ö');
"%C3%B6"
当您的PHP页面收到此信息时,它必须知道它是UTF-8,并将其作为UTF-8处理 - 这意味着服务器端的所有内容都必须使用UTF-8:
例如,如果您在PHP端使用var_dump()
来显示从客户端发送的内容,请不要忘记指示生成的页面是UTF-8,如下所示:
header('Content-type: text/html; charset=UTF-8');
否则,浏览器将使用它的默认字符集 - 它不一定是正确的,并且可能显示垃圾。
答案 1 :(得分:0)
您可以使用escape("AbcÄüö")
,然后获得“Abc%C4%FC%F6”
在php中,您可以使用urldecode($myValue)
再次获取“AbcÄüö”