Регулярное выражение в ruby ​​1.8.7, которое обнаружит 4-байтовый символ Юникода - PullRequest
1 голос
/ 15 октября 2011

Может кто-нибудь сказать мне, как я написал бы регулярное выражение ruby ​​в ruby ​​1.8.7, чтобы обнаружить присутствие 4-байтового символа юникода (особенно смайликов)? Я пытаюсь справиться с тем фактом, что mysql по умолчанию не позволяет вам хранить 4-байтовые символы эмодзи-юникода, которые теперь используются в iOS 5.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 15 октября 2011

Похоже, что он совпадает с первыми двумя байтами четырех байтов, которые представляют эмодзи. Это работает в ruby ​​1.8.7.

str.match(/\360\237/)
0 голосов
/ 15 октября 2011

Изменение таблицы может быть осуществимо с использованием неблокирующего онлайн-подхода, например, Изменение схемы Maatkit в сети: http://www.percona.com/doc/percona-toolkit/pt-online-schema-change.html

Из документов:

Вкратце, этот инструмент работает, создавая временную таблицу, которая является копия оригинальной таблицы (изменяемой). (Временный таблица не создается как CREATE TEMPORARY TABLE; мы называем это временным потому что это в конечном итоге заменяет исходную таблицу.) Временный таблица изменена, то триггеры определены в исходной таблице для сохранить изменения, сделанные на нем, и применить их к временной таблице. это синхронизирует две таблицы Затем все строки копируются из исходный стол к временной таблице; эта часть может занять некоторое время. когда После завершения копирования строк две таблицы меняются местами с помощью RENAME TABLE. На данный момент есть две копии таблицы: старая таблица, которая Раньше была оригинальная таблица, а новая таблица, которая раньше была временная таблица, но теперь имеет то же имя, что и исходная таблица. Если --drop-old-table указывается, тогда старая таблица удаляется.

...