Это мой любимый способ перебора строки. Вы можете делать все, что хотите, за каждое слово.
string line = "a line of text to iterate through";
string word;
istringstream iss(line, istringstream::in);
while( iss >> word )
{
// Do something on `word` here...
}
4 байта Unicode-символы еще не широко используются, поэтому не все приложения там полностью поддерживают их. MySQL 5.5 отлично работает с 4 байтовыми символами при правильной настройке - проверьте, могут ли ваши другие компоненты работать с ними.
Вот еще несколько вещей, которые нужно проверить:
ALTER TABLE mytable charset=utf8mb4, MODIFY COLUMN textfield1 VARCHAR(255) CHARACTER SET utf8mb4,MODIFY COLUMN textfield2 VARCHAR(255) CHARACTER SET utf8mb4;
и т. д. Если ваши данные уже находятся в наборе символов utf8, он должен без проблем быть преобразован в utf8mb4. Как всегда, сделайте резервную копию своих данных перед попыткой! SET NAMES utf8mb4
до запускать любые запросы. Как только каждый уровень вашего приложения сможет поддерживать новые символы, вы сможете использовать их без какого-либо повреждения.
Недавно я написал подробное руководство по переключению с MySQL utf8
на utf8mb4
. Если вы выполните шаги там, все должно работать правильно. Вот прямые ссылки на каждый отдельный шаг процесса:
Надеюсь, это поможет.