登录
首页 >  Golang >  Go问答

PDF不支持使用utf-8字符串编码像Go那样

来源:stackoverflow

时间:2024-02-17 23:57:23 450浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《PDF不支持使用utf-8字符串编码像Go那样》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

我正在使用 libray (https://github.com/unidoc/unipdf) 来处理 pdf 文件。通过使用“setreason”方法,我尝试设置 pdf 文件签名的原因。

func (_aggg *pdfsignature )setreason (reason string ){_aggg .reason =_gb .makestring (reason )};

这导致西里尔文字变成不清楚的符号(如图所示)。 不清楚的循环符号

原文为:“русский > 请求 id = 12,任务 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)

这将以适合此文本的 utf-16be 格式存储原因。

披露:我是 unipdf 的原始开发者。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>