mysql替换重音字符

pix*_*ine 2 mysql utf-8 character-encoding

我想从用户的名字和姓氏生成严格的字母数字字符登录.由于他们中的许多人都是外国人,他们的名字有特殊字符(é,è,ï,...).我想删除登录中的重音符号(e,e,i,...).

这是我的查询.是否有不包含重音符的字符集?

UPDATE contacts SET login=CONVERT(LOWER(CONCAT(firstname,'.',lastname)) USING utf8);
Run Code Online (Sandbox Code Playgroud)

Raf*_*shi 6

这是我标准化重音标签的解决方案:

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
Run Code Online (Sandbox Code Playgroud)


dod*_*lex 5

好吧,作为一名法国计算机科学家(以他的名字加上口音),我强烈主张反对这种转变.

为什么,因为这个策略只是用另一个错误的假设取代错误的假设.让我解释一下自己:

我们可以看到这样一个事实:在登录ID中只允许us-ascii作为一个错误的假设"所有用户名都可以 ascii 编写 ".

试图从用户名中删除重音只是将"所有用户名都可以转换为ascii" 替换为假设.

这也是不正确的:它对我有用(作为欧洲 - 拉丁语1证明的人),但你如何计算三岛的名字?还是Сахаров?

我知道我的答案是非技术性的,但你应该做任何必要的事情来允许登录中的非ascii字符.或者,您应该允许您的用户选择此登录.