用问号替换的短划线字符(Ajax调用)


En dash character replaced with a question mark (Ajax call)

我正在进行一个标准的jQuery $.ajax()调用,执行POST。该调用将一个字符串传递给PHP控制器。

问题如下:当字符串中使用短划线(–)字符时,当它到达PHP时,它会被替换为(?)字符。正常的连字符(-)不会导致此问题。

该网站的编码为UTF-8。我不知道如何解决这个问题。我可能可以做一些字符替换,但我需要为每一个"有问题"的标点符号做吗?

撇开问题不谈,如果编码正确,这不应该只是工作吗?

令人困惑。

更新:

我对传递的字符串使用了mb_detect_encoding()。结果是"ASCII"。。。我正在使用一个遗留代码。我该怎么解决这样的问题?

在PHP方面,$_REQUEST全局用于检索Ajax数据。在我将其更改为$_POST之后,保留了短划线。

不过,我真的不明白$_REQUEST为什么会失败。

无论如何,这在这种情况下起了作用。我真的不喜欢写这段代码并创建这个项目的开发人员:)