"* org.apache.commons.lang.StringEscapeUtils.unescapeHtml (myHtmlString)"을 사용하여 Html 엔티티 이스케이프를 실제 문자열을 포함하는 문자열로 변환합니다 이스케이프에 해당하는 유니 코드 문자입니다. 그러나 "em 대시"및 "en 대시"기호를 올바르게 구문 분석하지 않습니다. 올바른 자리 바꾸기가 "\ u2013"인 동안 StringEscapeUtils는 ""을 "\ u0096"으로 바꿉니다. 그리고 "\ u0096"은 ""에 해당하는 cp1252입니다. 어떻게하면 제대로 작동 할 수 있습니까? 나는 그것을 수동으로 대체 할 수 있지만 StringEscapeUtils 또는 다른 유틸리티를 사용하여 그것을 할 수 있는지 궁금해."org.apache.commons.lang.StringEscapeUtils"및 "en dash"
답변
And as I have read "\u0096" is cp1252 equivalent for "–".
저는 그렇게 생각하지 않습니다. 유니 코드 0x0096은 C1 제어 코드 :
http://en.wikipedia.org/wiki/C0_and_C1_control_codes
와의 교체 수 없을 수도 있습니다 - (당신이 쓴대로) "".
음, StringEscapeUtils 정말이를 망쳐 놨 경우 (대시 참 u2013을 \해야 엉)과 그것의 경우는 단지 그것을 어지럽히 탈출 한 다음 문자열의 다른 0x0096을 할 이유하는 존재하지 않는 경우 바꾸어주세요 이후 StringEscapeUtils을 호출해야합니다.
다음은 당신이 기대하는 대체 않습니다
System.out.println("Broken\u0096stuff".replaceAll("\u0096", "\u2013"));
그러나 먼저 정말 일을 망쳐 놨 정말, 정말, 당신이 얼마나 이유/이해해야 그 StringEscapeUtils을해야 자바 문자열에서 0x0096 그 .
또한 Unicode 3.1이 나올 때까지 Java가 생각 되었기 때문에 슬프게도 Java의 Unicode 지원은 주요 SNAFU라는 것을 지적해야합니다.
는 그러므로 그것이 프리미티브 숯 16 비트를 사용하는 스마트 아이디어를 보였다는 4 hexdigits을 사용하는 스마트 아이디어 듯 '\ Uxxxx에'제어 시퀀스는, 상기의 길이를 표현하기 위해 스마트 아이디어 듯 문자는 [] 등 문자열의 길이() 메소드에서 이러한 사실은 어디 문자 실제로 더 이상 유니 코드 문자를 보유 할 수없는 원시 어디 문자열의 주요 자바 혼란으로 중 하나에 연결된 모든 아주 아주 바보 같은 생각이었다 길이 메서드는 실제로 이 아니며은 문자열의 실제 길이를 반환합니다.
나는 다음과 같은 :
final char brokenCharCannotRepresentUnicode31Codepoints = '\uFFFF'; // How do I store a Unicode 3.1 codepoint here!?
왜 호언 장담? 글쎄, 난 모르기 때문에 어떻게에서 정규 표현식 교체 문자열의 완전히 대체하기는 구현하지만 난 정말는 문자와 같은 문자열의 완전히 대체하기했다 경우 (즉 특정 코드 포인트)이 있다면 놀라지 않을 것 과 같은 길이과 같은 \ uxxxx, 음 .. 완전히 흠.
StringEscapeUtils.unescapeHtml(...)
호출에 문제가 있다고 생각됩니다.
대신 전화가 전에 '\u0096'
으로 변경된 것으로 의심됩니다. 더 구체적으로 말하자면, HTML을 문자로 읽을 때 코드가 잘못된 문자 세트를 사용했다고 의심됩니다.
당신이 말했듯이, en 대시는 cp1252에서 코드 포인트 0x96
입니다. 따라서 유니 코드 코드 포인트 \u0096
에 일괄 적으로 잘못 번역 된 한 가지 방법은 cp1252를 사용하여 인코딩 된 바이트 스트림으로 시작하고 InputStreamReader(is, "Latin-1")
을 사용하여 읽기/디코딩하는 것입니다.
- 1. DASH 용 HTML 엔티티
- 2. Mac Web Dash 보드 앱은 어떻게 작동합니까?
- 3. ResourceBundle은 "en"로케일 만 인식합니다
- 4. Tomahawk datascroller 다음 en 이전
- 5. 파이썬 UTF-16 WAVY DASH 인코딩 질문/문제
- 6. GPS 전원 켜기 HTC Snap/Ozone Dash 3G
- 7. 브라우저 주소 표시 줄의 'url'을 JavaScript로 자동 바꾸는 방법 :/en/services/to/en/# services?
- 8. Silverlight의 맞춤법 검사를위한 en-GB 사전
- 9. .NET : InvariantCulture와 en-US간에 차이점이 있습니까?
- 10. 자바 스크립트 문화 항상 en-us
- 11. Java 용으로 가장 빠르고/최고의 Base64 en/decoder는 무엇입니까?
- 12. 파이썬에서 term division by term (division termino와 en python)
- 13. en 요소의 html을 얻고 td 요소에 추가하는 방법
- 14. SSRS ReportViewer의 DateTime 형식은 항상 en-US를 사용합니까?
- 15. en_US 또는 en-US 중 어느 것을 사용해야합니까?
- 16. 이제 "영어"또는 "en"이 기본 .lproj 폴더 이름입니까?
- 17. 인도네시아어 (id-ID) 날짜를 영어 (en-US)로 변환
- 18. xml : lang = "en"을 <html> 태그에 추가하는 방법
- 19. en-US와 en_US의 로캘을 만드는 것과 다른 점은 무엇입니까?
- 20. 루트가 [/ en/home]으로 리디렉션 될 때 GoogleBot이 [index.php]에 관심을 갖는 이유는 무엇입니까?
- 21. 다국어 URL을이 example.com/index.php?lang=en에서이 example.com/en/으로 어떻게 변경합니까?
- 22. mod_rewrite는 en, es가 있지만 zh-tw 및 zh-cn이 아닌 URL에 사용할 수 있습니까?
- 23. "span lang ="en-us "태그를 넣지 않고 Visual Web Developer를 중지하십시오.
- 24. grep을 사용하여 non-usa, en, ASCII 문자를 이스케이프 처리하는 방법은 무엇입니까?
- 25. 빙의 번역 API를 통해 검색된 언어가 "EN"과 같은지 테스트하려면 어떻게해야합니까?
- 26. 'culture'(예 : es-MX, en-US)는 웹 사이트 - 컨텐츠 또는 표시를 현지화하려는 것입니까?
- 27. 영어 (카리브 해)의 문화 이름이 "en-029"인 이유는 무엇입니까?
- 28. 장고 튜토리얼 문제 : <a href="http://docs.djangoproject.com/en/dev/intro/tutorial01/" rel="nofollow noreferrer">http://docs.djangoproject.com/en/dev/intro/tutorial01/</a></p> <p>에서 장고 튜토리얼 다음 어떤 모듈 이름 pysqlite2
- 29. nsiWebProgressListener.STATE_START가 firefox에서 트리거되는 조건은 무엇입니까? <a href="https://developer.mozilla.org/en/nsIWebProgressListener" rel="nofollow">https://developer.mozilla.org/en/nsIWebProgressListener</a></p> <p>따르면
- 30. 장고 : <a href="http://www.google.com/appsstatus#hl=en" rel="nofollow noreferrer">http://www.google.com/appsstatus#hl=en</a>하지만 우리 자신의 서버에 대한 백업 : 그래서 구글 응용 프로그램의 상태 페이지를 모방하려고 날짜 및 서버
정확히 무엇을하려고합니까? 'StringEscapeUtils'의 어떤 메소드를 호출합니까? – axtavt