-1

我正在使用 Xenforo 论坛脚本。对于线程标题上的非英文字符,有一个将非英文字符转换为英文字符的函数。

每当我发布“ö”时,都会转换为“oe”。但函数数组是;

$title = strtr($title, array(
    '"' => '',
    "'" => '',
    "Ö" => "o",
    "ö" => "o",
    "C" => "c",
    "c" => "c",
    "Ğ" => "g",
    "ğ" => "g",
    "Ş" => "s",
    "ş" => "s",
    "Ü" => "u",
    "ü" => "u",
    "İ" => "i",
    "ı" => "i",
    "Ç" => "c",
    "ç" => "c",
    "é" => "i",
    "â" => "a",
    "Ê" => "e",
    "Â" => "a",
    "?" => "_",
    "*" => "_",
    "." => "_",
    "," => "_",
    ";" => "_",
    ")" => "_",
    "(" => "_",
    "{" => "_",
    "}" => "_",
    "[" => "_",
    "]" => "_",
    "!" => "_",
    "+" => "_",
    "%" => "_",
    "&" => "_",
    "#" => "_",
    "$" => "_",
    "=" => "_",
    "ê" => "e",
    "." => "-"
    ));

为什么“ö”字符转换为“oe”?我想“ö”作为“o”。

4

2 回答 2

1

您可以对某些字符使用自己的替换:

$title = str_replace("ö","o",$title);

在这种情况下,您应该注释掉您发布的代码,以便

ö

不改成

oe

在调用您的替换函数之前。

于 2013-08-19T08:54:01.560 回答
0

我找到了其他关于罗马化的文件....有 UTF-8 Case 查找表文件。

于 2013-08-19T10:42:51.010 回答