我正在进行一个标准的jQuery $.ajax()
调用,执行POST。该调用将一个字符串传递给PHP控制器。
问题如下:当字符串中使用短划线(–)字符时,当它到达PHP时,它会被替换为(?)字符。正常的连字符(-)不会导致此问题。
该网站的编码为UTF-8。我不知道如何解决这个问题。我可能可以做一些字符替换,但我需要为每一个"有问题"的标点符号做吗?
撇开问题不谈,如果编码正确,这不应该只是工作吗?
令人困惑。
更新:
我对传递的字符串使用了mb_detect_encoding()
。结果是"ASCII"。。。我正在使用一个遗留代码。我该怎么解决这样的问题?
在PHP方面,$_REQUEST
全局用于检索Ajax数据。在我将其更改为$_POST
之后,保留了短划线。
不过,我真的不明白$_REQUEST
为什么会失败。
无论如何,这在这种情况下起了作用。我真的不喜欢写这段代码并创建这个项目的开发人员:)