mysql заменяет акцентированные символы - PullRequest
2 голосов
/ 02 мая 2010

Я хотел бы генерировать строгие алфавитно-цифровые логины символов из имени и фамилии пользователя. Поскольку многие из них иностранцы, их имена имеют специальные символы (é, è, ï, ...). Я хотел бы убрать акценты (e, e, i, ...) в логинах.

Вот мой запрос. Есть ли набор символов, который не содержит акцентов?

UPDATE contacts SET login=CONVERT(LOWER(CONCAT(firstname,'.',lastname)) USING utf8);

Ответы [ 2 ]

5 голосов
/ 03 мая 2010

Ну, как французский ученый-компьютерщик (с акцентом в его имени), я бы решительно выступал против такого преобразования.

Почему бы и нет, потому что эта стратегия просто заменяет неправильное предположение другим неправильным предположением. Позвольте мне объяснить:

Мы можем видеть тот факт, что только us-ascii допускаются в идентификаторе входа в систему как неверное предположение, что «все имена пользователей могут быть записаны в ascii».

Попытка удалить акценты в имени пользователя просто заменяет предположение "все имена пользователей могут быть преобразованы в ascii".

Это также неверно: у меня это сработает (как у человека с европейским и латинским именем 1), но как вы вычислите имя 三島? или тот из Сахаров?

Я знаю, что мой ответ не является техническим, но вы должны сделать все необходимое, чтобы разрешить использование символов не ascii в логинах. Или вы должны позволить своим пользователям выбирать этот логин.

4 голосов
/ 06 июня 2013

Вот мое решение для нормализации акцентированных тегов:

REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE(  
REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE(  
REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE(  
acc_tag,
'ù','u'),'ú','u'),'û','u'),'ü','u'),'ý','y'),'ë','e'),'à','a'),'á','a'),'â','a'),'ã','a'), 
'ä','a'),'å','a'),'æ','a'),'ç','c'),'è','e'),'é','e'),'ê','e'),'ë','e'),'ì','i'),'í','i'), 
'î','i'),'ï','i'),'ð','o'),'ñ','n'),'ò','o'),'ó','o'),'ô','o'),'õ','o'),'ö','o'),'ø','o') AS normal_tag
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...