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)
这是我标准化重音标签的解决方案:
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)
好吧,作为一名法国计算机科学家(以他的名字加上口音),我强烈主张反对这种转变.
为什么,因为这个策略只是用另一个错误的假设取代错误的假设.让我解释一下自己:
我们可以看到这样一个事实:在登录ID中只允许us-ascii作为一个错误的假设"所有用户名都可以用 ascii 编写 ".
试图从用户名中删除重音只是将"所有用户名都可以转换为ascii" 替换为假设.
这也是不正确的:它对我有用(作为欧洲 - 拉丁语1证明的人),但你如何计算三岛的名字?还是Сахаров?
我知道我的答案是非技术性的,但你应该做任何必要的事情来允许登录中的非ascii字符.或者,您应该允许您的用户选择此登录.
归档时间: |
|
查看次数: |
7964 次 |
最近记录: |