나는 최근 JavaScript에 어려움을 겪고 있습니다.
이런 문제가 발생했습니다. 데이터베이스의 문자 집합이 UTF-8입니다. 입력 텍스트가 UTF-8로 저장될 때 바이트 길이를 차지하는지 확인하려면 페이지에서 JavaScript를 사용해야 합니다. JavaScript의 String 객체에는 길이 속성이 있는데 이 계산은 바이트 수가 아닌 문자 수입니다. (문제는 항상 계속해서 발생합니다. 델파이를 가지고 놀 때 프로그램을 작성해야 했던 기억이 납니다. Delphi의 문자열 길이는 바이트 수이기 때문에 문자열의 문자 수를 계산합니다...). 게으른 방법은 인증 코드의 최대 길이를 데이터베이스의 해당 필드 길이의 1/3로 설정하는 것이지만 이는 정확하기에는 다소 부적절합니다.
그래서 JavaScript에서 UTF-8로 저장된 String의 바이트 수를 확인하는 방법을 찾고자 인터넷에서 유니코드 도입에 대한 많은 문서를 찾았습니다. 문자 인코딩 값:
UCS-2 인코딩(16진수) UTF-8 바이트 스트림(2진수)
0000 - 007F 0xxxxxxx(1바이트)
0080 - 07FF 110xxxxx 10xxxxxx(2바이트)
0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx (3바이트)
따라서 코드는 다음과 같습니다.
[