jquery가 URL에서 중국어 문자를 깨뜨립니다.

王林
풀어 주다: 2023-05-12 09:08:36
원래의
1519명이 탐색했습니다.

웹 개발에서는 URL에서 매개변수를 가져오기 위해 jQuery를 사용해야 하는 경우가 많습니다. 그러나 URL에 한자가 포함되어 있으면 한자가 깨져 나오는 문제가 쉽게 발생할 수 있습니다. 이 기사에서는 jQuery를 사용하여 URL에서 중국어 매개변수를 얻는 방법과 중국어 문자 깨짐 문제를 처리하는 방법을 소개합니다.

1. URL에서 매개변수 가져오기

URL에서 매개변수를 가져오는 방법에는 일반적으로 두 가지가 있습니다.

  1. window.location.search 메서드를 사용하여 매개변수 문자열을 가져온 다음 이를 키-값으로 구문 분석합니다. 한 쌍.
  2. 정규 표현식을 사용하여 URL의 매개변수를 일치시키세요.

아래에서는 이 두 가지 방법을 각각 소개합니다.

  1. window.location.search 메소드를 사용하여 매개변수 문자열을 가져옵니다.

window.location.search 메소드는 URL에서 매개변수 문자열을 가져올 수 있습니다. 예:

http://example.com/index.html?id=123&name=张三
로그인 후 복사
로그인 후 복사

다음 코드를 사용하여 매개변수 문자열:

var paramsStr = window.location.search; // 返回 ?id=123&name=张三
로그인 후 복사

그런 다음 JavaScript 내장 함수 decodeURIComponent()를 사용하여 매개변수 문자열을 구문 분석하고 이를 키-값 쌍 형식으로 변환할 수 있습니다.

function getParams(url) {
  var paramsStr = url.split("?")[1];  // 获取参数字符串
  var paramsArr = paramsStr.split("&");  // 将参数字符串转换为数组
  var paramsObj = {};
  for (var i = 0, len = paramsArr.length; i < len; i++) {
    var arr = paramsArr[i].split("=");
    var name = decodeURIComponent(arr[0]);  // 解码中文字符
    var value = decodeURIComponent(arr[1]);
    paramsObj[name] = value;  // 将键值对添加到paramsObj中
  }
  return paramsObj;
}

var params = getParams(window.location.href);
console.log(params.id);  // 输出 123
console.log(params.name);  // 输出 张三
로그인 후 복사

decodeURIComponent()를 사용하여 중국어를 디코딩할 때는 주의하세요. 그렇지 않으면 잘못된 문자가 발생합니다.

  1. 정규식을 사용하여 URL의 매개변수 일치

정규식은 URL의 지정된 매개변수 값과 일치할 수 있습니다. 예:

http://example.com/index.html?id=123&name=张三
로그인 후 복사
로그인 후 복사

다음 정규식을 사용하여 id 매개변수의 값을 일치시킬 수 있습니다.

var url = window.location.href;
var idReg = /id=(d+)/;
var id = idReg.exec(url)[1];
console.log(id);  // 输出 123
로그인 후 복사

여기서 사용됨 정규식 id=(d+)는 id 매개변수의 값을 일치시키는 데 사용됩니다. 여기서 d는 숫자를 나타내고, +는 여러 숫자를 나타내며, ()는 일치하는 결과를 그룹화하는 데 사용됩니다.

2. 한자 깨짐 문제 처리

URL에서 한자 매개변수를 얻을 때 한자 깨짐 문제가 자주 발생합니다. URL의 한자를 올바르게 전송하려면 인코딩해야 하기 때문입니다. 따라서 URL 매개변수 값을 얻을 때 한자를 디코딩해야 합니다. 그렇지 않으면 잘못된 문자가 나타납니다.

JavaScript에서는 내장 함수 encodeURIComponent() 및 decodeURIComponent()를 사용하여 URL의 한자를 인코딩하고 디코딩할 수 있습니다.

  1. encodeURIComponent()

encodeURIComponent() 함수는 URL에서 문자, 숫자, (,), .,!, ~, *, ', - 및 _를 제외한 특수 문자를 인코딩하는 데 사용됩니다. 예:

var str = "http://example.com/index.html?id=123&name=张三";
var encoded = encodeURIComponent(str);
console.log(encoded);  // 输出 http%3A%2F%2Fexample.com%2Findex.html%3Fid%3D123%26name%3D%E5%BC%A0%E4%B8%89
로그인 후 복사

encodeURIComponent() 함수는 공백을 인코딩하지 않지만 공백을 %20으로 인코딩해야 하는 경우 교체() 함수를 사용하여 공백 문자를 바꿀 수 있습니다.

var str = "http://example.com/index.html?id=123&name=张 三";
var encoded = encodeURIComponent(str.replace(/s/g, "%20"));
console.log(encoded);  // 输出 http%3A%2F%2Fexample.com%2Findex.html%3Fid%3D123%26name%3D%E5%BC%A0%20%E4%B8%89
로그인 후 복사
  1. decodeURIComponent()

decodeURIComponent( ) 함수는 URL의 특수 문자를 디코딩하는 데 사용됩니다. 예:

var str = "http%3A%2F%2Fexample.com%2Findex.html%3Fid%3D123%26name%3D%E5%BC%A0%E4%B8%89";
var decoded = decodeURIComponent(str);
console.log(decoded);  // 输出 http://example.com/index.html?id=123&name=张三
로그인 후 복사

URL의 중국어 문자가 올바르게 인코딩되지 않으면 디코딩 시 문자가 깨질 수 있다는 점에 유의해야 합니다. 이러한 상황이 발생하면 unescape() 함수를 사용하여 URL을 디코딩할 수 있습니다.

var str = "http://example.com/index.html?id=123&name=张三";
var encoded = escape(str); // 编码
var decoded = unescape(encoded); // 解码
console.log(decoded); // 输出 http://example.com/index.html?id=123&name=张三
로그인 후 복사

여기서 unescape() 함수는 중단되었으며 권장되지 않습니다. 문자가 왜곡되는 것을 방지하려면 URL을 전송할 때 중국어 문자를 올바르게 인코딩하는 것이 좋습니다.

3. 결론

URL에서 매개변수를 구하는 것은 웹 개발의 기본 작업이며, 한자 깨짐 문제도 일반적인 개발 어려움입니다. 이러한 문제를 피하기 위해 encodeURIComponent() 및 decodeURIComponent() 함수를 사용하여 URL을 인코딩하고 디코딩할 수 있습니다. 동시에 URL 매개변수 값을 얻을 때 중국어 문자도 디코딩해야 합니다. 그렇지 않으면 잘못된 문자가 나타납니다. 이러한 작업은 다소 지루할 수 있지만 중국 웹사이트에는 꼭 필요한 작업입니다.

위 내용은 jquery가 URL에서 중국어 문자를 깨뜨립니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!