* .jjt 파일에 키릴 문자 토큰을 만들 수 있습니까?JavaCC에서 어떻게 키릴 문자를 지원합니까?
TOKEN : /* LITERALS */
{
< TEST: "тест" >
| < DEVELOP: "разработка" >
}
하지만 JJ 파일의 토큰은 끔찍한 모양 : exampe 토큰
는 jjt에 제시되어있다
options {
JDK_VERSION = "1.6";
UNICODE_INPUT = true;
JAVA_UNICODE_ESCAPE = false;
TRACK_TOKENS=true;
STATIC=false;
}
내가 할 경우
TOKEN : /* LITERALS */
{
< TEST: "\u0421\u201a\u0420\u00b5\u0421\u0403\u0421\u201a" >
| < DEVELOP: "\u0421\u0402\u0420\u00b0\u0420\u00b7\u0421\u0402\u0420\u00b0\u0420\u00b1\u0420\u0455\u0421\u201a\u0420\u0454\u0420\u00b0" >
}
은 다음과 같은 옵션을 사용하여 그녀의 수업의 도움으로 유니 코드 :
프로그램 시작 후class GetUnicode {
public static void main(String[] args) {
if (args.length < 1) return;
for (String input: args) {
for (int index = 0; index < input.length(); ++index) {
final char c = input.charAt(index);
final String s = String.format ("\\u%04x", (int)c);
System.out.print(s);
}
System.out.println();
}
}
}
: 결과
$ java GetUnicode тест разработка
\u0442\u0435\u0441\u0442
\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430
, 나는 유니 코드 문자열이 일치하지 않는 것을 볼 수 있습니다. 예를 들어 :
"\u0442\u0435\u0441\u0442" != "\u0421\u201a\u0420\u00b5\u0421\u0403\u0421\u201a"
는 이런 일이 발생하는 이유는 아이디어가 있습니까?
추신 :이 버그는 Windows OS에서만 발생합니다.
이 질문이 있으십니까? 아니면 다음과 같이 대답 했습니까? _ "다음 옵션을 사용하십시오. ..."_? –
수정 해 주셔서 감사합니다 –