【问题标题】:PHP: Convert specific-Bosnian characters to non-bosnian (utf8 standard chars)PHP:将特定波斯尼亚语字符转换为非波斯尼亚语(utf8 标准字符)
【发布时间】:2012-01-13 06:40:12
【问题描述】:

在波斯尼亚,我们有以下仅在波斯尼亚和克罗地亚以拉丁形式使用的字符,因此我需要将这些字母转换如下:

FROM | TO
  ć  | c
  č  | c
  ž  | z
  š  | s
  đ  | dj

如果这可以通过某种特殊形式的 RegEx 或 utf8_encode/decode 实现,那么我们将非常欢迎该信息和适当的示例!谢谢大家。

PS - 想要在 PHP 中实现这一点!

【问题讨论】:

  • 对于đdj 的转换,您需要正则表达式或字符串替换。 the many iconv 答案已经涵盖了其他所有内容。

标签: php regex utf-8 special-characters string-conversion


【解决方案1】:

您可以将它与 iconv 一起使用。

$result = iconv("UTF-8", "ASCII//TRANSLIT", $text);

假设您的输入 $text 是 utf-8 格式,这将起作用。如果它在 latin-1 中,则使用

iconv("ISO-8859-1", "ASCII//TRANSLIT", $text);

当然,您的 PHP 必须具有 iconv 扩展名,通常 iconvphp.ini 文件中启用,但并非总是如此。

【讨论】:

  • 这会将非 ASCII 字符转换为 ASCII 中最相似的替换字符。为此,您还应该在调用此函数之前设置您的语言环境: setlocale(LC_ALL, 'en_US');
【解决方案2】:

你可以试试这个:

$search = array("ć", "č", "ž", "š", "đ");
$replacement = array("c", "c", "z", "s", "dj");
$new_string = str_replace($search, $replacement, $string);

另外,请查看str_replace

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    相关资源
    最近更新 更多