使用JS和PHP转义的特殊字符

时间:2010-07-14 12:51:59

标签: php javascript encoding

我的应用程序geting来自输入字段的文本,将它通过ajax发布到php文件,以便将其保存到db。

var title = encodeURIComponent($('#title').val());

如果我逃避()标题就可以了,但我有“+”字符的问题。所以我使用encodeURIComponent()。

现在我遇到了德国特殊字符的问题,例如“ö”“䔓ü”它们会像crypdet一样显示出来......

有一个想法我该如何解决这个问题?

THX

2 个答案:

答案 0 :(得分:1)

我认为这与编码有关:您的HTML页面可能使用UTF-8,特殊字符的编码方式如下:

>>> encodeURIComponent('ö');
"%C3%B6"

当您的PHP页面收到此信息时,它必须知道它是UTF-8,并将其作为UTF-8处理 - 这意味着服务器端的所有内容都必须使用UTF-8:

  • PHP代码必须使用可以使用多字节字符的函数
  • 数据库(db,tables,columns,...)必须使用UTF-8存储数据
  • 生成HTML页面时,您需要指明它是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Äüö”