2017-04-15 2 views
1

기본적으로 원시 필드 값을 읽으려고하지만 아래의 경우와 같이 표시 할 수 없습니다. 예상대로 내가 입력 정기적으로 이메일, 자바 스크립트가 값을 읽을 수 있습니다중국어와 라틴 문자가 혼합 된 전자 메일 필드에서 원시 값 검색

<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" />
+0

Gibolt의 대답을 바탕으로 입력 데이터 요구 사항의 일부로 punycode를 포함하고이 변환 된 문자열을 기반으로 데이터를 처리했습니다. – EdC

답변

0

이는 퓨니 코드 (Punycode)이라고합니다. 유니 코드를 라틴 문자로 변환하므로 모든 장치에서 입력 할 수 있습니다. 좀 더 자세한 설명을 얻으려면 this page을 확인하십시오.

해결책을 찾으려면 this page을 확인하고 필요에 맞게 확인하십시오. 행운을 빕니다!

관련 문제