MySQL正则表达式函数土耳其字符问题


那月静好
2025-03-15 12:56:08 (8天前)


我正在用土耳其语搜索php。在土耳其语字母表中有’i’和’谋’小写字符。还有’我’和’陌’大写字符。

在正则表达式函数中的Mysql select查询无法找到土耳其语…

2 条回复
  1. 0# 一腔诗意喂了狗 | 2019-08-31 10-32



    您可以通过以下方式解决土耳其语字符问题。



    使用HTML和JQuery代码,如下所示;








    1. function searchBarReplaceChar() {
      searchInput = $.trim($(‘input[name=”replaceChar”]’).val());

    2.     let charMap = {
    3.         脟: '[C脟]+',
    4.         C: '[C脟]+',
    5.         脰: '[O脰]+',
    6.         O: '[O脰]+',
    7.         艦: '[S艦]+',
    8.         S: '[S艦]+',
    9.         陌: '[I陌]+',
    10.         I: '[I陌]+',
    11.         脺: '[U脺]+',
    12.         U: '[U脺]+',
    13.         臑: '[G臑]+',
    14.         G: '[G臑]+',
    15.         莽: '[c莽]+',
    16.         c: '[c莽]+',
    17.         枚: '[o枚]+',
    18.         o: '[o枚]+',
    19.         艧: '[s艧]+',
    20.         s: '[s艧]+',
    21.         谋: '[谋i]+',
    22.         i: '[谋i]+',
    23.         眉: '[u眉]+',
    24.         u: '[u眉]+',
    25.         臒: '[g臒]+',
    26.         g: '[g臒]+',
    27.     };
    28.     let str_array = searchInput.split('');
    29.     for (let i = 0, len = str_array.length; i < len; i++) {
    30.         str_array[i] = charMap[str_array[i]] || str_array[i];
    31.     }
    32.     searchInput = str_array.join('');
    33.     let replaceChar = searchInput.replace(/[]/gi, "");
    34.     let lastChar = replaceChar.slice(-1);
    35.     if (lastChar === '+') {
    36.         replaceChar = replaceChar.slice(0, -1);
    37.     }
    38.     $('.result').text(replaceChar);
    39. }
    40.     </code>
    41.   </pre>
    42.    <pre class="snippet-code-html lang-html prettyprint-override">
    43.     <code>
    44.       <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>








    使用ajax发送此结果到您的php文件。



    以后,你的php文件代码,




    1. 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’”;
      }

    2. </code>


    别忘了这,mysql数据库在你的表列数据类型字符集中

    utf8_turkish_ci



    祝你好运


登录 后才能参与评论