草庐IT

utf8_unicode_cs

全部标签

mongodb - 在 Go 中将任何编码转换为 UTF 8

我正在通过IMAP下载邮件。接下来,我将已解析的消息添加到MongoDB中。我有一个问题,因为MongoDB仅支持UTF8。我想将任何编码转换为UTF8。代码多种多样。如何将每个字符串转换为UTF8?我知道,我可以转换为二进制,但我必须有普通文本,因为我必须在数据库中搜索短语。除非,我可以用二进制搜索普通文本吗? 最佳答案 我正在使用go-charset项目来执行此操作:https://code.google.com/p/go-charset/非常简单,您从字符集创建一个阅读器,它会自动转换为utf-8。来自图书馆的例子:r,err

unicode - ContainsRune 给出奇怪的结果

我在GoPlayground中运行这段代码:fmt.Println(strings.ContainsRune("\xa0",'\xa0'))我想知道,为什么会输出false?根据docs,它说:ContainsRunereturnstrueiftheUnicodecodepointriswithins.在我看来代码点就在那里,它会给出false作为响应似乎很奇怪。 最佳答案 "\x0a"不是unicode代码点。fmt.Println(strings.ContainsRune("\u00a0",'\u00a0'))按预期工作。

unicode - 将 unicode 代码点转换为 Go 中的文字字符

假设我有一个这样的文本文件。\u0053\u0075\u006E有什么办法可以把它转换成这个吗?Sun目前,我正在使用ioutil.ReadFile("data.txt"),但是当我打印数据时,我得到的是unicode代码点而不是字符串文字。我意识到这是ReadFile的正确行为,这不是我想要的。我的目标是用它们的文字字符替换代码点。 最佳答案 您可以使用strconv.Unquote()和strconv.UnquoteChar()进行转换的函数。您应该注意的一件事是strconv.Unquote()只能取消引号中的字符串(例如,以

unicode - 字符串文字和字符串值之间的区别?

来自strings博文:SomepeoplethinkGostringsarealwaysUTF-8,buttheyarenot:onlystringliteralsareUTF-8.Asweshowedintheprevioussection,stringvaluescancontainarbitrarybytes;asweshowedinthisone,stringliteralsalwayscontainUTF-8textaslongastheyhavenobyte-levelescapes.Tosummarize,stringscancontainarbitrarybytes,

unicode - 无效的 Unicode 代码点 0xd83f

我正在尝试将一些Java移植到Go。Java代码有一个值为'\ud83f'的字符变量。当我尝试在Go中使用此值时,它无法编译:packagemainfuncmain(){c:='\ud83f'println(c)}$goruna.go#command-line-arguments./a.go:3:invalidUnicodecodepointinescapesequence:0xd83f为什么?我还尝试在Python中创建一个具有该值的字符串,它也有效。由于某种原因,它在Go中不起作用。 最佳答案 您尝试使用的rune文字无效,因为

unicode - 从 rune 中获取 unicode 类别

我正在寻找一种从Go中的rune获取unicode类别(RangeTable)的方法。例如,字符a映射到Ll类别。unicode包指定了所有类别(http://golang.org/pkg/unicode/#pkg-variables),但我看不出有任何方法可以从给定的rune中查找类别。我是否需要使用适当的偏移量从rune手动构造RangeTable? 最佳答案 “unicode”包的文档没有返回rune范围的方法,但构建一个并不难:funccat(rrune)(names[]string){names=make([]string

xml - golang XML 以 'invalid UTF-8' 错误结束解析

我在使用Unicode字符解码XML时遇到问题。当尝试用标准英文字符解析XML时,它会解析整个文件并正确解码,没有任何问题。但是,如果XML文件包含ñ、á或–(em-dash)等字符,它将停止解析XML并仅返回数组中在的项目之前的项目那个角色。例如,这里是XML:这是我的Go代码(粗略的,没有任何导入):#main.gotypeResponsestruct{Items[]Items`xml:"items"`}typeItemsstruct{Item[]Item`xml:"item"`}typeItemstruct{IDItemID`xml:"ID"`}typeItemIDstruct{

unicode - 转到unicode代码点

你如何在Go中编码unicode代码点?在下面的示例中,我存储了aceofspades的unicode的十六进制表示形式。为\u1F0A1但当我打印时它显示为Ἂ1。这是为什么?如果我复制并粘贴黑桃A字形,它可以正常打印。packagemainimport"fmt"funcmain(){fmt.Println("?\u1F0A1")}输出?Ἂ1Goplayground中的上述示例https://play.golang.org/p/ukK57CnVuE 最佳答案 小写\u用于从\u0000到\uFFFF的Unicode代码点。如果您希望

string - 使用 Go 的 archive/zip 创建带有 Unicode 文件名的 zip 存档

packagemainimport("archive/zip""fmt""io""os""path/filepath""strings")funcmain(){var(Path=os.Args[1]Name=os.Args[2])File,_:=os.Create(Name)PS:=strings.Split(Path,"\\")PathName:=strings.Join(PS[:len(PS)-1],"\\")os.Chdir(PathName)Path=PS[len(PS)-1]deferFile.Close()Zip:=zip.NewWriter(File)deferZip.C

string - 将 "=?UTF 8?.."(RFC 2047) 转换为 golang 中的常规字符串

我正在使用一个API,它为其他语言文本返回类似这样的内容:=?UTF8?B?2KfZhNiu2LfZiNin2Kog2KfZhNiq2Yog2KrYrNmF2Lkg2KjZitmG?==?UTF8?B?INit2YHYuCDYp9mE2YLYsdin2ZPZhiDYp9mE2YPYsdmK2YUg2YjZgQ==?==?UTF8?B?2YfZhdmHINmF2YXYpyDYp9mU2YXZhNin2Ycg2KfZhNi52YTYp9mF?==?UTF8?B?2Kkg2LnYqNivINin2YTZhNmHINin2YTYutiv2YrYp9mGLnBkZg==?=这是一种常见的格式吗?