Кто-нибудь знает о надежном методе (с MySQL или иным) для выбора строк в базе данных, которые содержат японские символы?У меня есть много строк в моей базе данных, некоторые из которых имеют только буквенно-цифровые символы, некоторые из которых имеют японские символы.
Правила, когда вы хотите иметь проблемы с наборами символов:
при создании базы данных используйте кодировку utf8:
CREATE DATABASE _test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Убедитесь, что все текстовые поля (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;
Когда вы устанавливаете соединение, сделайте это, прежде чем запрашивать / обновлять базу данных:
SET NAMES utf8;
С phpMyAdmin - выберите UTF-8 при входе в систему.
установите кодировку веб-страницы в utf-8, чтобы убедиться, что все данные публикации / получения будут в UTF-8 (или вам придется конвертировать болезненно ...). Код PHP (первая строка в файле php или, по крайней мере, перед любым выводом):
header('Content-Type: text/html; charset=UTF-8');
Убедитесь, что все ваши запросы написаны в кодировке 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, мне пришлось установить кодировку на соединении базы данных, чтобы заставить его работать.
& characterEncoding = UTF8
Тогда SET NAMES utf8; казалось излишним
Количество японских символов ограничено.Вы можете искать их, используя
SELECT ... LIKE '%カ%'
В качестве альтернативы вы можете попробовать их шестнадцатеричное наименование -
SELECT ...LIKE CONCAT('%',CHAR(0x30ab),'%')
Вы можете найти это японское подмножество UTF-8 http://www.utf8 -chartable.de / unicode-utf8-table.pl? start = 12448
Предположим, вы используете набор символов UTF-8 для полей, запросов, результатов ...
Как сказал Frosty, просто используйте SELECT.
Найдите самые низкие и самые ценные японские символы в диаграммах Юникода на http://www.unicode.org/roadmaps/bmp/ и используйте REGEXP.Он может использовать несколько разных областей символов, чтобы получить весь набор символов японского языка.Пока вы используете кодировку UTF-8 и сопоставление utf8_general_ci, вы должны иметь возможность использовать REGEXP '[a-gk-nt-z]', где ag представляет один диапазон символов Unicode из диаграмм, kn представляет другой диапазон,и т.д.
Как указано выше, просто используйте SELECT.
SELECT
При установке MySQL используйте UTF-8 в качестве кодировки. Затем, выбрав utf8_general_ci в качестве параметров сортировки, следует выполнить работу.
utf8_general_ci