0

我有这个函数可以将所有特殊字符转换为大写:

function uc_latin1($str) {
    if(!defined("LATIN1_UC_CHARS"))
        define("LATIN1_UC_CHARS", "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ");
    if(!defined("LATIN1_LC_CHARS"))
        define("LATIN1_LC_CHARS", "àáâãäåæçèéêëìíîïðñòóôõöøùúûüý");
    $str = strtoupper ( strtr ( $str, LATIN1_LC_CHARS, LATIN1_UC_CHARS ) );
    return $str;
}

此功能在我运行 Windows XP 的开发 PC 中运行良好......但是,当我在运行 Red Hat Linux 的生产服务器中测试它时,它不会将字符串大写。该字符串采用 ISO-8859-1 编码。

我怎样才能让它在 Linux 中也能工作?

4

1 回答 1

1

您是否尝试过使用mb_strtoupper()?在我的计算机上,这至少会转换您定义的所有字符,尽管它也可能会不希望地转换其他字符。

例如:

$str = àáâãäåæçèéêëìíîïðñòóôõöøùúûüý;
$str = mb_strtoupper($str);
echo $str;
// Prints ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ
于 2010-04-19T17:58:48.003 回答