ASP 사이트에서 알 수없는 형식으로 인코딩 된 URL을 디코딩 할 수 없습니다.

헤샴 쇼키

나는 웹 사이트를 긁어 모으고 있는데이 웹 사이트에는 양식이 아랍어로되어 있으므로 양식이 제대로 작동하도록 모든 항목 (입력)을 인코딩하고 있습니다.

내 문제는 JS 및 decodeUri / decodeUriComponent 를 사용하여 사이트에서 오는 인코딩 출력 문자열과 함께 작동하지 않는다는 것입니다.

브라우저도 unable to decode value콘솔 개발에서 말합니다 .

디코딩하는 데 필요한 링크 예제 :

http://app2.helwan.edu.eg/HelwanNat/Education/TermAlist.asp?x_level=2020%2D2019&z_level=LIKE&x_dep=%C7%E1%DA%E1%E6%E3+%2D%CA%DA%E1%ED % E3 + % C7 % D3 % C7 % D3 % EC & z_dep = LIKE & x_st_name = % E3 % CD % E3 % CF & z_st_name = LIKE

Patrolin

이것은 windows-1256 인코딩으로 보입니다 .

다음과 같이 js에서 디코딩 할 수 있습니다.

function decode(string) {
  var array = [...string.matchAll(/%(.{2})/g)].map((groups) => parseInt(groups[1], 16));
  var decoder = new TextDecoder('windows-1256');
  return decoder.decode(Uint8Array.from(array).buffer);
}
console.log(decode('%E3%CD%E3%CF'));
console.log('%C7%E1%DA%E1%E6%E3+%2D%CA%DA%E1%ED%E3+%C7%D3%C7%D3%EC'.split('+').map(decode));

TextEncoder ()utf-8 문자열 만 인코딩 할 수 있으므로 windows-1256에 대한 변환 테이블을 만들어야합니다 .

windows_1256 = [
'\u0000', '\u0001', '\u0002', '\u0003', '\u0004', '\u0005', '\u0006', '\u0007', '\u0008', '\u0009', '\u000A', '\u000B', '\u000C', '\u000D', '\u000E', '\u000F',
'\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', '\u0016', '\u0017', '\u0018', '\u0019', '\u001A', '\u001B', '\u001C', '\u001D', '\u001E', '\u001F',
'\u0020', '\u0021', '\u0022', '\u0023', '\u0024', '\u0025', '\u0026', '\u0027', '\u0028', '\u0029', '\u002A', '\u002B', '\u002C', '\u002D', '\u002E', '\u002F',
'\u0030', '\u0031', '\u0032', '\u0033', '\u0034', '\u0035', '\u0036', '\u0037', '\u0038', '\u0039', '\u003A', '\u003B', '\u003C', '\u003D', '\u003E', '\u003F',
'\u0040', '\u0041', '\u0042', '\u0043', '\u0044', '\u0045', '\u0046', '\u0047', '\u0048', '\u0049', '\u004A', '\u004B', '\u004C', '\u004D', '\u004E', '\u004F',
'\u0050', '\u0051', '\u0052', '\u0053', '\u0054', '\u0055', '\u0056', '\u0057', '\u0058', '\u0059', '\u005A', '\u005B', '\u005C', '\u005D', '\u005E', '\u005F',
'\u0060', '\u0061', '\u0062', '\u0063', '\u0064', '\u0065', '\u0066', '\u0067', '\u0068', '\u0069', '\u006A', '\u006B', '\u006C', '\u006D', '\u006E', '\u006F',
'\u0070', '\u0071', '\u0072', '\u0073', '\u0074', '\u0075', '\u0076', '\u0077', '\u0078', '\u0079', '\u007A', '\u007B', '\u007C', '\u007D', '\u007E', '\u007F',
'\u20AC', '\u067E', '\u201A', '\u0192', '\u201E', '\u2026', '\u2020', '\u2021', '\u02C6', '\u2030', '\u0679', '\u2039', '\u0152', '\u0686', '\u0698', '\u0688',
'\u06AF', '\u2018', '\u2019', '\u201C', '\u201D', '\u2022', '\u2013', '\u2014', '\u06A9', '\u2122', '\u0691', '\u203A', '\u0153', '\u200C', '\u200D', '\u06BA',
'\u00A0', '\u060C', '\u00A2', '\u00A3', '\u00A4', '\u00A5', '\u00A6', '\u00A7', '\u00A8', '\u00A9', '\u06BE', '\u00AB', '\u00AC', '\u00AD', '\u00AE', '\u00AF',
'\u00B0', '\u00B1', '\u00B2', '\u00B3', '\u00B4', '\u00B5', '\u00B6', '\u00B7', '\u00B8', '\u00B9', '\u061B', '\u00BB', '\u00BC', '\u00BD', '\u00BE', '\u061F',
'\u06C1', '\u0621', '\u0622', '\u0623', '\u0624', '\u0625', '\u0626', '\u0627', '\u0628', '\u0629', '\u062A', '\u062B', '\u062C', '\u062D', '\u062E', '\u062F',
'\u0630', '\u0631', '\u0632', '\u0633', '\u0634', '\u0635', '\u0636', '\u00D7', '\u0637', '\u0638', '\u0639', '\u063A', '\u0640', '\u0641', '\u0642', '\u0643',
'\u00E0', '\u0644', '\u00E2', '\u0645', '\u0646', '\u0647', '\u0648', '\u00E7', '\u00E8', '\u00E9', '\u00EA', '\u00EB', '\u0649', '\u064A', '\u00EE', '\u00EF',
'\u064B', '\u064C', '\u064D', '\u064E', '\u00F4', '\u064F', '\u0650', '\u00F7', '\u0651', '\u00F9', '\u0652', '\u00FB', '\u00FC', '\u200E', '\u200F', '\u06D2'
];

function encode(string){
    return [...string].map(c => `%${windows_1256.indexOf(c).toString(16).toUpperCase()}`).join('');
}
console.log(encode('محمد'));
console.log(['العلوم', "-تعليم", "اساسى"].map(encode).join('+'));

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

base64로 인코딩 된 이미지를 디코딩 할 수 없습니다.

분류에서Dev

Python을 사용하여 명령 줄에서 전달 된 json 인수를 디코딩 할 수 없습니다.

분류에서Dev

openssl이 PHP의 base64_encode 함수로 인코딩 된 문자열을 디코딩 할 수없는 이유는 무엇입니까?

분류에서Dev

Base 64로 인코딩 된 QRGen QR 코드를 디코딩 할 수 없습니다.

분류에서Dev

API에서 반환 된 JSON을 디코딩 할 수 없습니다.

분류에서Dev

XUGGLER로 인코딩 된 오디오를 재생할 수 없습니다.

분류에서Dev

파이썬은 utf-8로 인코딩 할 수 있지만 디코딩 할 수 없습니다.

분류에서Dev

Java로 인코딩 된 PHP에서 base64로 데이터를 디코딩 할 수 있습니까?

분류에서Dev

소켓을 통해 수신 된 배열 요소 (문자열로 인코딩 됨)를 디코딩 할 수 없습니다.

분류에서Dev

Obj-C에서 Java와 유사한 방식으로 UTF-8을 디코딩 할 수 없습니다.

분류에서Dev

본인이 코딩 한 앱으로 사진을 검색 할 수 없습니다.

분류에서Dev

바이트 배열을 UTF8로 인코딩 한 다음 다시 바이트로 디코딩 할 수 없습니다.

분류에서Dev

명령 줄에서 퍼센트 인코딩 된 문자열을 어떻게 인코딩하고 디코딩 할 수 있습니까?

분류에서Dev

명령 줄에서 퍼센트 인코딩 된 문자열을 어떻게 인코딩하고 디코딩 할 수 있습니까?

분류에서Dev

알 수없는 이유로 웹 사이트에서 Python 셀레늄 바인딩을 사용하여 요소를 선택할 수 없습니다.

분류에서Dev

인코딩에 사용 된 기능을 알 수없는 TFRecord 파일 읽기

분류에서Dev

바코드 디코딩을 위해 UWP에서 'WriteableBitmap'유형을 'LuminanceSource'로 변환 할 수 없습니다.

분류에서Dev

ISO-8859-9로 인코딩 된 파일을 터미널에 표시 할 수 없습니다.

분류에서Dev

Angularjs는 $ routeParams를 사용하여 URL 인코딩 된 URL에서 매개 변수를 읽을 수 없습니다.

분류에서Dev

인코딩을 utf8로 변경할 수 없습니다.

분류에서Dev

Flutter : 객체 유형을 알 수없는 경우 Json 디코딩

분류에서Dev

Dolby Digital 또는 DTS 인코딩을 사용할 수 없음 : 오디오 형식이 지원되지 않습니다.

분류에서Dev

PHP에서 문자 인코딩으로 알아낼 수 없습니다.

분류에서Dev

Windows에서 "알 수없는 디코더 'h264_nvenc'"로 인해 nvenc로 jpg 인코딩이 실패 함

분류에서Dev

기존 응용 프로그램에서 알 수없는 형식으로 인코딩 된 자바에서 원래 문자열 가져 오기

분류에서Dev

UnicodeDecodeError : 'utf-8'코덱이 위치 0에서 바이트 0x90을 디코딩 할 수 없습니다 : 잘못된 시작 바이트

분류에서Dev

ASP : utf-8에서 iso-8859-1로 일부 문자를 디코딩 할 수 없습니다.

분류에서Dev

FFMPEG는 빠른 속도로 비디오를 인코딩 할 수 없습니다.

분류에서Dev

Quicktime이 FFmpeg로 인코딩 된 동영상 파일을 재생할 수없는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    base64로 인코딩 된 이미지를 디코딩 할 수 없습니다.

  2. 2

    Python을 사용하여 명령 줄에서 전달 된 json 인수를 디코딩 할 수 없습니다.

  3. 3

    openssl이 PHP의 base64_encode 함수로 인코딩 된 문자열을 디코딩 할 수없는 이유는 무엇입니까?

  4. 4

    Base 64로 인코딩 된 QRGen QR 코드를 디코딩 할 수 없습니다.

  5. 5

    API에서 반환 된 JSON을 디코딩 할 수 없습니다.

  6. 6

    XUGGLER로 인코딩 된 오디오를 재생할 수 없습니다.

  7. 7

    파이썬은 utf-8로 인코딩 할 수 있지만 디코딩 할 수 없습니다.

  8. 8

    Java로 인코딩 된 PHP에서 base64로 데이터를 디코딩 할 수 있습니까?

  9. 9

    소켓을 통해 수신 된 배열 요소 (문자열로 인코딩 됨)를 디코딩 할 수 없습니다.

  10. 10

    Obj-C에서 Java와 유사한 방식으로 UTF-8을 디코딩 할 수 없습니다.

  11. 11

    본인이 코딩 한 앱으로 사진을 검색 할 수 없습니다.

  12. 12

    바이트 배열을 UTF8로 인코딩 한 다음 다시 바이트로 디코딩 할 수 없습니다.

  13. 13

    명령 줄에서 퍼센트 인코딩 된 문자열을 어떻게 인코딩하고 디코딩 할 수 있습니까?

  14. 14

    명령 줄에서 퍼센트 인코딩 된 문자열을 어떻게 인코딩하고 디코딩 할 수 있습니까?

  15. 15

    알 수없는 이유로 웹 사이트에서 Python 셀레늄 바인딩을 사용하여 요소를 선택할 수 없습니다.

  16. 16

    인코딩에 사용 된 기능을 알 수없는 TFRecord 파일 읽기

  17. 17

    바코드 디코딩을 위해 UWP에서 'WriteableBitmap'유형을 'LuminanceSource'로 변환 할 수 없습니다.

  18. 18

    ISO-8859-9로 인코딩 된 파일을 터미널에 표시 할 수 없습니다.

  19. 19

    Angularjs는 $ routeParams를 사용하여 URL 인코딩 된 URL에서 매개 변수를 읽을 수 없습니다.

  20. 20

    인코딩을 utf8로 변경할 수 없습니다.

  21. 21

    Flutter : 객체 유형을 알 수없는 경우 Json 디코딩

  22. 22

    Dolby Digital 또는 DTS 인코딩을 사용할 수 없음 : 오디오 형식이 지원되지 않습니다.

  23. 23

    PHP에서 문자 인코딩으로 알아낼 수 없습니다.

  24. 24

    Windows에서 "알 수없는 디코더 'h264_nvenc'"로 인해 nvenc로 jpg 인코딩이 실패 함

  25. 25

    기존 응용 프로그램에서 알 수없는 형식으로 인코딩 된 자바에서 원래 문자열 가져 오기

  26. 26

    UnicodeDecodeError : 'utf-8'코덱이 위치 0에서 바이트 0x90을 디코딩 할 수 없습니다 : 잘못된 시작 바이트

  27. 27

    ASP : utf-8에서 iso-8859-1로 일부 문자를 디코딩 할 수 없습니다.

  28. 28

    FFMPEG는 빠른 속도로 비디오를 인코딩 할 수 없습니다.

  29. 29

    Quicktime이 FFmpeg로 인코딩 된 동영상 파일을 재생할 수없는 이유는 무엇입니까?

뜨겁다태그

보관