tomcat及びWeChat支払いにおける署名の中国語符号化問題


二日間をかけて、この穴を出ました。
幸いにもこのようなです。私たちのコードは他のマシンで正常ですが、私のマシンでは結果が違っています。二つの機能点があります。一つはWeChat支払いに署名されたmd 5です。結果は違っています。一つはpdfで生成された中国語です。
はい
異常はこうです。
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2     UTF-8       2   。
いろいろな試みを経て、最後に問題は必ずtomcatの中にあると思います。そして、2台のコンピュータのtomcatに比べて、やはりtomcatのweb.xmlの中で、一つはiso-859-1、一つはutf 8です。エンコードはisoのコンピュータのプログラムが正常に走ります。コードはutf-8のものです。エラーが発生します。
検索では、tomcatのデフォルトコードはISO-895-1と言います。このようにwebアプリケーションが実行されると、MD 5の中で中国語をisoでエンコードしますので、md 5の結果は違っています。WeChatのdemoryはこうです。
resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
getBytesはパラメータを追加して、getBytes(「utf-8」);これでいいです
pdfの生成には、getBytesを使うという問題もあります。