| 我正在用土耳其语搜索php.在土耳其语字母中,有“ i”和“?”小写字符.还具有“ I”和“?”大写字符. 在正则表达式函数中找不到MySQL选择查询土耳其语字符,例如:?-?..我的搜索列数据类型字符集UTF-8 general_ci. 我在等你的答案.提前致谢.最佳答案
您可以通过以下方式解决土耳其字符问题. 使用HTML和JQuery代码,如下所示; function searchBarReplaceChar() {
        searchInput = $.trim($('input[name="replaceChar"]').val());
        let charMap = {
            ?: '[C?]+',C: '[C?]+',?: '[O?]+',O: '[O?]+',?: '[S?]+',S: '[S?]+',?: '[I?]+',I: '[I?]+',ü: '[Uü]+',U: '[Uü]+',?: '[G?]+',G: '[G?]+',?: '[c?]+',c: '[c?]+',?: '[o?]+',o: '[o?]+',?: '[s?]+',s: '[s?]+',?: '[?i]+',i: '[?i]+',ü: '[uü]+',u: '[uü]+',?: '[g?]+',g: '[g?]+',};
        let str_array = searchInput.split('');
        for (let i = 0,len = str_array.length; i < len; i++) {
            str_array[i] = charMap[str_array[i]] || str_array[i];
        }
        searchInput = str_array.join('');
        let replaceChar = searchInput.replace(/[]/gi,"");
        let lastChar = replaceChar.slice(-1);
        if (lastChar === '+') {
            replaceChar = replaceChar.slice(0,-1);
        }
        $('.result').text(replaceChar);
    }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" name="replaceChar" value="?ehir bu gece ?ok güzel" />
<p class="result"></p>
<button type="submit" onclick="searchBarReplaceChar()" >Send</button>
 发送此结果到您的带有ajax帖子的php文件中. 稍后,您的php文件代码, public function search_regexp() {
    $regexp = str_replace('i','?',$_POST['get_replace_result']);
    $regexp = str_replace('?','I',$regexp);
    $regexp = mb_strtoupper($regexp,"UTF-8");
    $sql_query = "SELECT * FROM your_table WHERE example_column regexp '$regexp'";
    // $sql_query = "SELECT * FROM your_table WHERE example_column regexp '[S?]+EH[I?]+R B[Uü]+ [G?]+E[C?]+E [C?]+[O?]+K [G?]+[Uü]+ZEL'";
}
 不要忘记这一点,mysql数据库在您的表列中的数据类型为字符集utf8_turkish_ci 祝你好运 (编辑:鹰潭站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |