Php 将非标准字符转换为标准版本

Php 将非标准字符转换为标准版本,php,character-encoding,ascii,special-characters,Php,Character Encoding,Ascii,Special Characters,我需要将非标准字符(如”更改为标准字符(如”)。如何在PHP中实现这一点?现在我只需要更改撇号,但如果知道如何更改双引号之类的其他符号,那就太好了。如果您只需要ASCII输出,可以使用iconv()和音译: iconv("UTF-8", "ASCII//TRANSLIT", "Hello’ World"); // gives "Hello' World" 如果不是UTF-8,请替换正确的源代码。您可以使用: 但是,“和”是两个不同的字符,我想知道为什么您要将它们视为相同的字符。没有“非标准”字

我需要将非标准字符(如
更改为标准字符(如
)。如何在PHP中实现这一点?现在我只需要更改撇号,但如果知道如何更改双引号之类的其他符号,那就太好了。

如果您只需要ASCII输出,可以使用
iconv()
和音译:

iconv("UTF-8", "ASCII//TRANSLIT", "Hello’ World"); // gives "Hello' World"
如果不是UTF-8,请替换正确的源代码。

您可以使用:


但是,
是两个不同的字符,我想知道为什么您要将它们视为相同的字符。

没有“非标准”字符。为什么要这样做?您可能应该首先确定需要哪种字符编码(UTF-8、ISO-8859-1等),然后确定应该为客户端提供哪种编码。@Jared这一次不是编码问题。:)@Jared遇到了一个字符替换问题,不管编码是什么。(回复OP中删除的注释):
是右单引号,
是撇号(如Unicode术语所定义)。看看他们,他们显然是不同的角色假设这是OP想要的,这是最好的解决方案+1我如何确定我的源代码?@LordZardeck:你必须知道。它将绑定到源字符串的来源信息。如果有疑问,请咨询您的主管或项目文件…哈哈,我没有主管,您所说的项目文件是什么意思?此外,如果有必要,我会从网站上获取我的内容helps@LordZardeck字体嗯,弦不是凭空产生的。每个文本字符串必须以某种形式包含编码信息,否则它只是一堆无用的字节。如果字符串不是可移植的自描述格式,则必须在其他地方记录此信息;否则,您只需更加熟悉您所处的整个环境,以及如何学习字符串编码信息(例如,用于web流量的HTTP标头)。这最终是满足我需求的最佳答案。
$replace = array('’' => '\''); //You can add more characters here

echo str_replace(array_keys($replace), array_values($replace), 'can’t');