问一篇新文章时,如何去除URL中的越南口音?

问一篇新文章时,如何去除URL中的越南口音?,url,question2answer,Url,Question2answer,当在我的question2answer网站上问一个新的越南语问题时,新创建的帖子将有一个URL,URL上的永久链接是根据标题越南语单词创建的,即带有越南语口音 该URL使其在共享链接时变得不美观,如下面的快照所示 我已经在管理员查看配置页面中打开了从问题URL中删除重音的选项,但它没有帮助。我怎样才能找到一个解决这个问题的方法 复制时突出显示的URL将被删除 c%C3%A2u-h%E1%BB%8Fi-c%E1%BB%A7a tui如问题2anser.org/qa所述,以下是我的解决方案 编辑文件

当在我的question2answer网站上问一个新的越南语问题时,新创建的帖子将有一个URL,URL上的永久链接是根据标题越南语单词创建的,即带有越南语口音

该URL使其在共享链接时变得不美观,如下面的快照所示

我已经在管理员查看配置页面中打开了从问题URL中删除重音的选项,但它没有帮助。我怎样才能找到一个解决这个问题的方法

复制时突出显示的URL将被删除

c%C3%A2u-h%E1%BB%8Fi-c%E1%BB%A7a tui

如问题2anser.org/qa所述,以下是我的解决方案

编辑文件\qa include\util\string.php

添加一个新函数qa_convert_vi_to_en

代码:

更新函数qa_string_remove_accents以返回新创建的函数。 代码:


我同样的回答也张贴在这里
function qa_convert_vi_to_en($str) 
{
    $str = preg_replace('/(à|á|?|?|ã|â|?|?|?|?|?|a|?|?|?|?|?)/', 'a', $str);
    $str = preg_replace('/(è|é|?|?|?|ê|?|?|?|?|?)/', 'e', $str);
    $str = preg_replace('/(ì|í|?|?|i)/', 'i', $str);
    $str = preg_replace('/(ò|ó|?|?|õ|ô|?|?|?|?|?|o|?|?|?|?|?)/', 'o', $str);
    $str = preg_replace('/(ù|ú|?|?|u|u|?|?|?|?|?)/', 'u', $str);
    $str = preg_replace('/(?|ý|?|?|?)/', 'y', $str);
    $str = preg_replace('/(d)/', 'd', $str);
    $str = preg_replace('/(À|Á|?|?|Ã|Â|?|?|?|?|?|A|?|?|?|?|?)/', 'A', $str);
    $str = preg_replace('/(È|É|?|?|?|Ê|?|?|?|?|?)/', 'E', $str);
    $str = preg_replace('/(Ì|Í|?|?|I)/', 'I', $str);
    $str = preg_replace('/(Ò|Ó|?|?|Õ|Ô|?|?|?|?|?|O|?|?|?|?|?)/', 'O', $str);
    $str = preg_replace('/(Ù|Ú|?|?|U|U|?|?|?|?|?)/', 'U', $str);
    $str = preg_replace('/(?|Ý|?|?|?)/', 'Y', $str);
    $str = preg_replace('/(Ð)/', 'D', $str);
    return $str;
}
function qa_string_remove_accents($string)
/*
Return UTF-8 input $string with all accents (on Roman characters) removed
*/
{
    if (qa_to_override(__FUNCTION__)) { $args=func_get_args(); return qa_call_override(__FUNCTION__, $args); }

    //global $qa_utf8removeaccents;
    //return strtr($string, $qa_utf8removeaccents);

    return qa_convert_vi_to_en($string);
}