Chrome中的输入类型电子邮件值,重音字符错误

将重音字符输入Chrome中的输入类型电子邮件时,会将值更改为奇怪的值。

输入电子邮件时: test@Bücher.ch输入值为: test@xn--bcher-kva.ch

$('#email').val() // --> test@xn--bcher-kva.ch document.getElementById('email').value // --> test@xn--bcher-kva.ch 

输入类型文本或其他主流浏览器不会发生这种情况。

例如,请看这个小提琴 。 这里发生了什么,我该如何解决它?

我认为这不是错误,这是因为规范。 Chrome只是以与其他浏览器不同的方式遵循规范:)并将IDN转换为其ascii表示。

https://code.google.com/p/chromium/issues/detail?id=410937

要解码它,你可以使用一些第三方解决方案,如

将带有破折号字符的punycode转换为Unicode

小提琴

 

对于这个问题,由于输入的电子邮件类型,在’@’符号浏览器出现此错误后。 我认为他们认为电子邮件地址始终必须是英文。

无论如何使用文本类型然后提供电子邮件正则表达式