草庐IT

utf8Bytes

全部标签

arrays - Golang 创建 bytes.Buffer 数组的多读取器

我需要创建slice的MultiReader[]*bytes.Bufferbuffer_slice:=...(type[]*bytes.Buffer)当我写io.MultiReader(buffer_slice)我得到错误:不能在io.MultiReader的参数中使用buffer_slice(类型[]*bytes.Buffer)作为io.Reader类型:[]*bytes.Buffer没有实现io.Reader(缺少Read方法)。但是函数签名MultiReader(readers...Reader)Reader我明白了,传输数组没有意义,实际问题:除了琐碎的循环,没有更多的选择吗?

go - 如何处理 bytes.Buffer 流中的 io.EOF?

https://play.golang.org/p/JKXKa7Pvjd我想弄清楚如何使用bytes.Buffer测试我的后台函数,其中流中可以有随机io.EOF?例子:packagemainimport("fmt""io""bytes""time")funcmain(){buffer:=new(bytes.Buffer)gobackground(buffer)i:=0fori我要找的结果是:1)teststring2)teststring3)teststring4)teststring5)teststring如何使用time.Sleep(1*time.Second)模拟延迟来实现这一

go - Aerospike 字符集 utf8 设置

我正在aerospike中插入一条记录。在我的本地环境中一切正常。但是,在暂存环境中,UTF-8字符未正确存储。aql>selectmsgfromtest.msgesLIST('["{"message_id":"kxwFZHVBKj","title":"คำถามได้รับà¸à¸²à¸£à¸•อบà¸à¸¥à¸±à¸šà¹à¸¥à¹‰à¸§!","actions":|+----------------------------------------------------------------------------------

utf-8 - 切断 UTF 字符串中的最后一个 rune

如何截断UTF字符串中的最后一个rune?这种方法显然是不正确的:packagemainimport("fmt""unicode/utf8")funcmain(){string:="你好"length:=utf8.RuneCountInString(string)//howtocutofflastruneinUTFstring?//thismethodisobviouslyincorrect:withoutLastRune:=string[0:length-1]fmt.Println(withoutLastRune)}Playground 最佳答案

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

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

go - bytes.Buffer 的限制?

我正在尝试使用包“compress/gzip”压缩一段字节。我正在写入一个bytes.Buffer并且我正在写入45976字节,当我尝试使用gzip.reader解压缩内容然后使用阅读器函数时-我发现并非所有内容都已恢复。bytes.buffer有一些限制吗?这是一种绕过或改变它的方法吗?这是我的代码(编辑):funccompress_and_uncompress(){varbufbytes.Bufferw:=gzip.NewWriter(&buf)i,err:=w.Write([]byte(long_string))if(err!=nil){log.Fatal(err)}w.Clos

golang : difference between var b Buffer and bytes. 缓冲区{}

varbbytes.Buffer//ABufferneedsnoinitialization.b:=bytes.Buffer{}这两个有什么区别?我在这里试过:http://play.golang.org/p/lnkkULeIYm没看出区别。谢谢, 最佳答案 :=是var的简写语法,在这种情况下b是一个零值bytes.Buffer。varbbytes.Buffer//isthesameasvarb=bytes.Buffer{}//isthesameasb:=bytes.Buffer{}您不能在函数外使用简写版本,因此对于全局变量,您

戈朗 : How to printf % x for bytes in a struct?

varb[88]byten,err:=file.Read(b[:])fmt.Printf("bytesread:%dBytes:[%x]\n",n,b)上面以十六进制打印字节我有一个这样的结构typeSomeStructstruct{field1[]bytefield2[]byte}someStructInstance:=SomeStruct{[249190180217],[29100]}fmt.Println(someStructInstance)=>{[249190180217][29100]}但理想情况下我希望它打印十六进制=>{[f9beb4d9][1d010000]}我该怎么

tcp - 有人能告诉我 golang 中 io.ReadFull 和 bytes.Buffer.ReadFrom 的行为是什么吗

我在实现一个tcpc/sdemo的时候遇到了一个问题,我发现当我在服务端使用io.ReadFull(conn,aByteArr)或者bytes.Buffer.ReadFrom(conn)的时候很奇怪,好像是直到客户端退出,服务器才会读取连接中的数据,换句话说,服务器卡住了,但是我可以使用基本的conn.Read(aBuffer)来读取数据。为什么这两种方法如此奇怪?因为我想让我的服务器处理任意大小的数据,所以我不喜欢使用基本的方式,我的意思是conn.Read(),它必须首先制作一个指定大小的字节slice。请帮助我。我可以给出我的代码:客户:packagemainimport("ne

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{