XSD의 패턴을 따르는 문자열을 생성하려고합니다.분음 부호, 아포스트로피, 악센트 등의 리터럴 문자를 사용하여 정규 표현식을 사용하는 문자를 제거하지 마십시오.
import java.lang.String;
public class HelloWorld {
public static void main(String[] args) {
test("Führ");
}
private static void test(String name) {
name = name.toUpperCase();
name = name.replaceAll (
"[^A-ZА-ЯΑ-ΩÄÀÁÂÃÅǍĄĂÆÇĆĈČĎĐÐÈÉÊËĚĘĜĢĞĤÌÍÎÏĴĶĹĻŁĽÑŃŇÖÒÓÔÕŐØŒŔŘẞŚŜŞŠȘŤŢÞȚÜÙÚÛŰŨŲŮŴÝŸŶŹŽŻ, '\\-–]",
""
);
System.out.println(name);
}
}
이 조각이 잘 실행하고 "FUHR"를 출력합니다 다음 XSD 패턴에 나타나지 않는 모든 문자를 제거하기 위해, 나는 다음과 같은 (문자 그대로 내 코드에서 복사 한 replaceAll
전화)를하고 있어요. 그러나 정확히 동일한 replaceAll
문을 사용하여 실행중인 환경에서 replaceAll
문자는 Ü
문자를 제거하고 데이터베이스에서 가져온 데이터 (즉 이름)가 FHR
인 것을 인쇄하고 코드에서와 같은 문자로 시작합니다 스 니펫 ("Führ").
내가 당황 스럽다. 무엇이 원인 일 수 있으며 어떻게 해결할 수 있습니까?
PS : 소스 파일의 인코딩은 UTF-8 (이클립스 .settings : encoding//<<<src-path>>>.java=UTF-8
)이다 분음 부호 아포스트로피, 액센트 등으로 문자가 일치하는 경우 Apparantly 히
LC_ALL = C로 설정해보십시오. –
@ WiktorStribiżew 그건 유닉스 설정으로 보입니다 ... 나는 Windoze 환경에 상응하는 것을 찾으려고 노력할 것이다. –
@ WiktorStribiżew'Locale.setDefault (Locale.ROOT);를 사용하여 시도했다; ... 변경하지 않는다. –