2012-08-29 3 views
2

여기에 이상한 문제가 있습니다. 문자 § (alt + 21)를 구분 기호로 사용하려고합니다. 그러나 소스가 컴파일되면 클래스 파일에서이 문자가 사각형 []과 비슷한 문자로 나타납니다. 이것은 나의 토큰 화에 실패하고있다. 누군가 이것을 전에 보았는가? 컴파일 된 클래스 파일에Java 컴파일러 및 § (alt + 21)

String dtr = "abcd§pqrs"; 
StringTokenizer st = new StringTokenizer(templateDetails,"§"); 

나는 아래 참조 :

String dtr = "abcd[]pqrs"; 
StringTokenizer st = new StringTokenizer(templateDetails,"[]"); 

가 어떻게이 문제를 해결합니까? TIA

+0

소스 파일 인코딩에 대해 컴파일러에게 알려 주셨습니까? – Thilo

+1

개폐 대괄호가 실제로 보입니까? 아니면 한 문자입니까? 후자가 사실이라면 컴파일러의 인코딩을 설정해야 할 가능성이 큽니다. – Vulcan

+0

내 Win7 및 JDK_1.6.30에서 작업 중입니다. 클래스 파일은'\ 247' – Favonius

답변

5

\u#### 구문을 사용하여 특정 유니 코드 번호가있는 문자 상수를 지정하십시오.

이렇게하면 파일 인코딩 및 컴파일러 동작을 엉망으로 만들지 않고도 순수한 ASCII로 지정할 수 있습니다.

+2

이것은 실행 가능한 솔루션입니다 만, 나는 여전히 * 적절한 * 인코딩으로 "엉망"을 제안합니다. (특히 UTF-8) 인코딩을 사용하지 않아도됩니다. –

+0

@JoachimSauer 모든 Maven 프로젝트에서 ASCII 인코딩으로 표준화 한 문자 인코딩 문제로 인해 _enough_되었습니다. "모든 컴퓨터에서 X, Y 및 Z를 수행하는 것을 기억하십시오"라고 말하는 사람은 재앙이 발생하기를 기다리는 중입니다. –

+0

필자는 모든 프로젝트에서 UTF-8 인코딩으로 표준화 한 문제로 인해 충분히 물 렸습니다 ;-) * 제대로 완료 되었다면 환경에 의존하지 않고 빌드를 만들 수 있습니다. 그러나 나는 네가 어디에서 왔는지 이해한다. –

-1

아마도 귀하의 환경에서 해당 문자를 허용하지 않습니다. 컴파일러를 업데이트하고 다시 검사 할 수 있습니다.