XML 문자열을 즉석에서 만듭니다 (파일에서 읽지 않음). 그런 다음 고치 3을 사용하여 FOP를 통해 PDF로 변환합니다. 중간 Xerces에서 어딘가에 실행됩니다. 하드 코드 된 것을 사용하면 모든 것이 작동합니다. 최대한 빨리 데이터베이스에 독일어 움라우트를 넣고 내가 할 데이터 내 XML을 풍요롭게로 : 다음 밖으로 내 응용 프로그램을 디버깅 및 발견 UTF-8이 있지만 여전히 "1 바이트 UTF-8 시퀀스 중 잘못된 바이트 1"이 표시됩니다.
Caused by: org.apache.cocoon.pipeline.ProcessingException: Can't parse the XML string.
at org.apache.cocoon.sax.component.XMLGenerator$StringGenerator.execute(XMLGenerator.java:326)
at org.apache.cocoon.sax.component.XMLGenerator.execute(XMLGenerator.java:104)
at org.apache.cocoon.pipeline.AbstractPipeline.invokeStarter(AbstractPipeline.java:146)
at org.apache.cocoon.pipeline.AbstractPipeline.execute(AbstractPipeline.java:76)
at de.grobmeier.tab.webapp.modules.documents.InvoicePipeline.generateInvoice(InvoicePipeline.java:74)
... 87 more
Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:684)
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:554)
는, (데이터베이스 다시 한번 확인 온다) 내 "A"가있다 바이트 값 196, 이는 헥스의 C4입니다. 이것이 내가 예상 한 바입니다.
http://www.utf8-zeichentabelle.de/
코드가 실패하는 이유를 모르겠습니다.
byte[] bom = new byte[3];
bom[0] = (byte) 0xEF;
bom[1] = (byte) 0xBB;
bom[2] = (byte) 0xBF;
String myString = new String(bom) + inputString;
나는이 정확하게 좋은 아니라는 것을 알고,하지만 난 그것을 시도 - 물론 실패 :
나는 그 같은 수동으로 BOM을 추가하는 것을 시도했다. xml 헤더를 앞쪽에 추가하려고했습니다.<?xml version="1.0" encoding="UTF-8"?>
어느 쪽도 실패했습니다. 그럼 나는 그것을 결합. 실패한.
결국 나는 그런 일을 시도 : 이미 UTF-8이기 때문에, 사실 아무것도하지 않고있다
xmlInput = new String(xmlInput.getBytes("UTF8"), "UTF8");
. 아직도 실패합니다.
그래서 ... 내가 뭘 잘못하고 있으며 Xerces가 내게 기대하고있는 아이디어가 있습니까?
감사 기독교
동의하지만 도움이되지 않습니다. 데이터베이스에서 오는 문제가되는 문자열은 내 ORM 계층에서 만들어지기 때문에. 또한 0xC4가 정상적으로 처리되어야합니다. – Christian
MySQL을 사용하면 테이블과 열은 utf8_general_ci로 인코딩됩니다. useUnicode = true & characterEncoding = utf8을 jdbc 연결에 추가했습니다. – Christian
다른 인코딩을 사용하여 DB에 연결하는 경우 JDBC 연결에서 이러한 매개 변수를 지정하는 것은 좋지 않을 수 있습니다. 자동 감지가 잘못되었을 때만 사용하십시오. 데이터를 쓰는데 무엇을 사용합니까? BLOB 또는 VARCHAR 열입니까? – JBert