Vor einem halben Jahr war ich mit nervigem Problem konfrontiert. Und konnte es immer noch nicht beheben. Problem liegt in log4j-Protokollierung, wo Standard-Zeichensatz ist utf 8.Wie erkennt man Zeichensatz in Java?
Manchmal erhalte ich Nachrichten mit unterschiedlicher Codierung, CP1252. (Es gibt keine Möglichkeit, dies zu ändern). So macht das Einloggen von utf8 den Text unlesbar. Ich kann die Codierung irgendwie beheben, und dieser Text wäre im Protokoll lesbar.
Aber wenn ich diese "Codierung beheben" auf die normale Nachricht anwenden wird, wird es versaut. Ich muss wissen, ob diese Konvertierung wirklich benötigt wird. Leider habe ich keine Ideen.
Es ist nicht möglich, die Kodierung eines Textblocks zuverlässig * zu erkennen *. Du musst generell wissen, womit du es zu tun hast. Vermutlich können Sie den Fall feststellen, in dem Sie in CP1252 Nachrichten empfangen, nein? Was ist das größere Szenario hier? – deceze
Nein. Ich kann es nicht vorhersagen :( Soweit ich mich erinnere, ist normale Nachrichten utf 8 und cp1251. Aber einige von ihnen hängen wahrscheinlich von Windows-Sprache ab, deshalb sind sie in CP1252. Ich kann sie durch Umwandlung 1252 lesbar machen -> 1251-> utf8 Aber es wird sicherlich die normalen versauen .. – VirtualVoid