Выберите строки MySQL с японскими символами - PullRequest
7 голосов
/ 19 марта 2011

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

Ответы [ 5 ]

5 голосов
/ 03 апреля 2011

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

  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.

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

1 голос
/ 11 декабря 2011

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

& characterEncoding = UTF8

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

0 голосов
/ 19 марта 2011

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

SELECT ... LIKE '%カ%'

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

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

Вы можете найти это японское подмножество UTF-8 http://www.utf8 -chartable.de / unicode-utf8-table.pl? start = 12448

Предположим, вы используете набор символов UTF-8 для полей, запросов, результатов ...

0 голосов
/ 01 апреля 2011

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

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

0 голосов
/ 19 марта 2011

Как указано выше, просто используйте SELECT.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...