使用DocuSign eSignature REST API v2.1 Java时非英文HTML文档显示异常求助
解决DocuSign eSignature REST API v2.1中HTML文档非英文内容显示异常的问题
问题原因
你当前的代码直接将Java字符串转成Base64时,默认使用JVM平台编码(多为ISO-8859-1),这种编码无法正确处理UTF-8格式的非英文字符,导致DocuSign解析时出现乱码。
修复步骤
- 明确指定UTF-8编码转换字节数组
在将HTML字符串转Base64时,显式使用UTF-8编码生成字节数组,确保非英文字符被正确编码。 - 在HTML文档中声明UTF-8编码
在HTML头部添加<meta charset="UTF-8">,告诉DocuSign的解析器使用UTF-8解码文档内容。
修改后的代码示例
import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.Arrays; // ... 其他业务代码 String htmlDoc = "<!DOCTYPE html><html><head><meta charset=\"UTF-8\"></head><body><p>Signera arbetsorderavtal för anställningsnummer</p></body></html>"; Document document = new Document(); document.setDocumentId("1"); document.setName("name"); // 关键修改:用UTF-8编码转字节数组后再做Base64编码 document.setDocumentBase64(Base64.getEncoder().encodeToString(htmlDoc.getBytes(StandardCharsets.UTF_8))); document.setFileExtension("html"); envelopeDefinition.setDocuments(Arrays.asList(document));
补充说明
- 显式指定
StandardCharsets.UTF_8可以避免依赖JVM默认编码的不确定性,保证跨环境的一致性。 - HTML头部的
<meta charset="UTF-8">是DocuSign正确识别非英文字符的必要声明,两者配合即可彻底解决显示异常问题。
内容的提问来源于stack exchange,提问作者SDi
相关产品推荐
相关产品推荐

