웹 개발에서는 URL에서 매개변수를 가져오기 위해 jQuery를 사용해야 하는 경우가 많습니다. 그러나 URL에 한자가 포함되어 있으면 한자가 깨져 나오는 문제가 쉽게 발생할 수 있습니다. 이 기사에서는 jQuery를 사용하여 URL에서 중국어 매개변수를 얻는 방법과 중국어 문자 깨짐 문제를 처리하는 방법을 소개합니다.
1. URL에서 매개변수 가져오기
URL에서 매개변수를 가져오는 방법에는 일반적으로 두 가지가 있습니다.
아래에서는 이 두 가지 방법을 각각 소개합니다.
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()를 사용하여 중국어를 디코딩할 때는 주의하세요. 그렇지 않으면 잘못된 문자가 발생합니다.
정규식은 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의 한자를 인코딩하고 디코딩할 수 있습니다.
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
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!