아마 JLex 호환 모드에서 실행 중입니까? 그렇다면 공식 JFlex 사용자 매뉴얼에서 다음을 참조하십시오. 기본적으로 입력에 7 비트 문자 코드를 사용하는 반면 원하는 것은 16 비트 (유니 코드)입니다.
첫 번째 %%
다음에 %unicode
줄을 추가하여이 문제를 해결할 수 있습니다.
자료 :
입력 문자
은 7 비트의 입력 문자 집합 (문자 코드 127)를 사용하여 생성 된 스캐너 원인 %의 7 비트를 설정한다. 런타임시 입력에서 127보다 큰 코드를 가진 입력 문자가 발견되면 스캐너는 ArrayIndexOutofBoundsException을 발생시킵니다. 이것 때문에뿐만 아니라, % unicode 지시문을 사용하는 것을 고려해야합니다. 문자 인코딩에 대한 정보는 인코딩을 참조하십시오. 이것은 JLex 호환 모드의 기본값입니다.
퍼센트 전체 % 8 비트
두 옵션 생성 스캐너 8 비트 입력 문자 집합 (문자 코드 255)을 사용하도록 야기한다. 런타임시 입력에서 255보다 큰 코드를 가진 입력 문자가 발견되면 스캐너는 ArrayIndexOutofBoundsException을 발생시킵니다. 플랫폼이 문자 당 1 바이트 만 사용하더라도 문자의 유니 코드 값은 여전히 255보다 클 수 있습니다. 텍스트 파일을 스캔하는 경우 % unicode 지시문을 사용해야합니다. 문자 인코딩에 대한 자세한 내용은 섹션 Econdings를 참조하십시오. 0-0x10FFFF :
% 유니 코드 %의 16 비트
두 옵션은 생성 된 스캐너가 보조 코드 포인트를 포함한 전체 유니 코드 입력 문자 집합을 사용하도록합니다. % unicode는 스캐너가 한 번에 2 바이트를 읽는 것을 의미하지 않습니다. 읽히는 무엇이고 특성을 구성하는 무엇이 런타임 플래트 홈에 달려있다. 문자 인코딩에 대한 더 자세한 정보는 Encoding 섹션을 참고하십시오. JLex 호환성 모드가 사용되지 않는 한 기본값입니다 (명령 행 옵션 --jlex).
나중에 참조 할 수 있도록 출처를 자신의 글과 분명히 구별하고 원본에 대한 하이퍼 링크를 제공하려면 인용 부호로 묶으십시오. – Laurence