기본적으로 원시 필드 값을 읽으려고하지만 아래의 경우와 같이 표시 할 수 없습니다. 예상대로 내가 입력 정기적으로 이메일, 자바 스크립트가 값을 읽을 수 있습니다중국어와 라틴 문자가 혼합 된 전자 메일 필드에서 원시 값 검색
<input type="email" name="username" id="username" />
:
간단한 이메일 양식 필드를 생각해 보자. 한자를 모두 입력하면 Javascript도 예상대로 값을 읽을 수 있습니다. 그러나 라틴어와 중국어 문자를 혼합하면 Javascript가 일련의 코드 문자 집합으로 변환되는 것으로 보입니다.시험 예 :
[email protected] //returns [email protected] 暮捕徹@暮捕徹.暮捕徹 //returns 暮捕徹@暮捕徹.暮捕徹 [email protected]暮捕徹.com //returns [email protected] [email protected]暮捕徹 //returns [email protected]
테스트 코드 : 나는 시도했다
function login(){
\t var username=document.querySelector('#username').value;
var resultDiv=document.createElement('DIV');
resultDiv.innerText = username;
\t document.querySelector('body').appendChild(resultDiv);
return false;
}
<form onsubmit="javascript: return false;">
<label for="username">Username</label>
<input type="email" name="username" id="username" />
<button onclick="login();">
Login
</button>
</form>
것들 :
,- 가 나는
<head>
에서 설정 한 :<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- 것은 내가 양식 필드에서 UTF-8로 설정했다 :
<input type="email" name="username" id="username" accept-charset="utf-8" />
Gibolt의 대답을 바탕으로 입력 데이터 요구 사항의 일부로 punycode를 포함하고이 변환 된 문자열을 기반으로 데이터를 처리했습니다. – EdC