Выберите строки MySQL с японскими символами

Кто-нибудь знает о надежном методе (с MySQL или другим способом) для выбора строк в базе данных, которые содержат японские символы? У меня есть много строк в моей базе данных, некоторые из которых имеют только буквенно-цифровые символы, некоторые из которых имеют японские символы.

7 голосов | спросил Rio 19 MaramSat, 19 Mar 2011 09:19:45 +03002011-03-19T09:19:45+03:0009 2011, 09:19:45

5 ответов


0

Правила, когда вы хотите иметь проблемы с наборами символов:

  1. при создании базы данных используйте кодировку utf8:

    CREATE DATABASE  _test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    
  2. Убедитесь, что все текстовые поля (varchar и text) используют UTF-8:

    CREATE TABLE _test.test (
      id INT NOT NULL AUTO_INCREMENT,
      name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE = MyISAM;
    
  3. Когда вы устанавливаете соединение, сделайте это, прежде чем запрашивать /обновлять базу данных:

    SET NAMES utf8;
    
  4. С phpMyAdmin - выберите UTF-8 при входе в систему.

  5. установите кодировку веб-страницы в utf-8, чтобы убедиться, что все данные публикации /получения будут в UTF-8 (или вам придется конвертировать это болезненно ...) PHP-код (первая строка в файле php или, по крайней мере, перед любым выводом):

    header('Content-Type: text/html; charset=UTF-8');
    
  6. Убедитесь, что все ваши запросы написаны в кодировке UTF8. При использовании PHP:

    6.1. Если PHP поддерживает код в UTF-8 - просто напишите свои файлы в UTF-8. 6.2. Если php скомпилирован без поддержки UTF-8 - конвертируйте строки в UTF-8 следующим образом:

    $str = mb_convert_encoding($str, 'UTF-8', '<put your file encoding here');
    $query = 'SELECT * FROM test WHERE name = "' . $str . '"';
    

    6,3.

Это должно сделать это.

ответил NickSoft 3 PMpSun, 03 Apr 2011 18:19:43 +040019Sunday 2011, 18:19:43
0

Следуя полезному ответу NickSoft, мне пришлось установить кодировку на соединении базы данных, чтобы заставить его работать.

& амп; characterEncoding = UTF-8

Тогда SET NAMES utf8; казалось излишним

ответил mart 11 SunEurope/Moscow2011-12-11T03:33:38+04:00Europe/Moscow12bEurope/MoscowSun, 11 Dec 2011 03:33:38 +0400 2011, 03:33:38
0

Как уже говорилось, просто используйте SELECT.

При установке MySQL используйте UTF-8 в качестве кодировки. Затем выберите utf8_general_ci в качестве параметров сортировки.

ответил Frosty Z 19 MarpmSat, 19 Mar 2011 12:36:41 +03002011-03-19T12:36:41+03:0012 2011, 12:36:41
0

Количество японских символов ограничено. Вы можете искать их, используя

SELECT ... LIKE '%カ%'

В качестве альтернативы вы можете попробовать их шестнадцатеричное наименование -

SELECT ...LIKE CONCAT('%',CHAR(0x30ab),'%')

Вам может пригодиться это японское подмножество UTF-8

ответил jhavrda 19 MarpmSat, 19 Mar 2011 23:40:31 +03002011-03-19T23:40:31+03:0011 2011, 23:40:31
0

Как сказал Frosty, просто используйте SELECT.

Посмотрите на японские символы с самым низким и самым высоким значением в диаграммах Юникода на http: //www.unicode .org /roadmaps /bmp /​​ и используйте REGEXP. Он может использовать несколько разных областей символов, чтобы получить весь набор символов японского языка. Пока вы используете набор символов UTF-8 и объединение utf8_general_ci, вы должны иметь возможность использовать REGEXP '[a-gk-nt-z]', где ag представляет один диапазон символов Юникода из диаграмм, kn представляет другой диапазон, и др.

ответил penguin359 1 PMpFri, 01 Apr 2011 14:14:44 +040014Friday 2011, 14:14:44

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132