go - PDF 不像 Go 那样使用 utf-8 字符串编码
问题描述
我正在使用 libray ( https://github.com/unidoc/unipdf ) 来处理 PDF 文件。通过使用“SetReason”方法,我尝试设置我的 pdf 文件签名的原因。
func (_aggg *PdfSignature )SetReason (reason string ){_aggg .Reason =_gb .MakeString (reason )};
这导致西里尔文字变得不清楚符号(如图所示)。 不明确的循环符号
原文为:“русский > Request Id = 12, Task Id = 145”
在 PDF 文件的主要内容中使用西里尔符号就可以了。问题出在 'Signs'('Подписи') 部分(如图所示)。
在图书馆有一个提及:(见“注意”)
// MakeString creates an PdfObjectString from a string.
// NOTE: **PDF does not use utf-8 string encoding like Go so `s` will often not be a utf-8 encoded
// string.**
func MakeString(s string) *PdfObjectString { _aaad := PdfObjectString{_gcae: s}; return &_aaad }
我想让我的 pdf 文件的“原因”成为可读的西里尔符号,那么,有什么解决方案吗?希望,我解释了问题...
解决方案
如果您使用core.MakeEncodedString
https://apidocs.unidoc.io/unipdf/latest/github.com/unidoc/unipdf/v3/core/#MakeEncodedString ,它应该可以工作
signature.Reason = core.MakeEncodedString("русский > Request Id = 12, Task Id = 145", true)
func MakeEncodedString(s string, utf16BE bool) *PdfObjectString
MakeEncodedString 创建一个带有编码内容的 PdfObjectString,它可以是 UTF-16BE 或 PDFDocEncoding,具体取决于utf16BE
分别是 true 还是 false。
这会将原因存储在适合此文本的 UTF-16BE 中。
披露:我是 UniPDF 的原始开发者。
推荐阅读
- php - 正则表达式只返回某些值 PHP
- php - Symfony - 查询总和
- assembly - 动态监控 rdtsc 的性能
- c# - 在 Web API 控制器操作上为 swashbuckle/swagger 添加默认值
- excel - Excel for mac 隐藏功能区
- ios - iOS,仅对应用程序功能的子集使用生物识别身份验证
- python - 如何在 python 的 tkinter 帧中导入 matplotlib 3D 动画?
- javascript - 引导程序未加载到 pug 文件中
- kubernetes - 运行 ssh-task 竹时“找不到 kubectl”
- python - 如何遍历元组字典