草庐IT

读码器

全部标签

file - base64 解码器(io.Reader 实现)不当行为

我已经尝试在for循环中重新声明/分配base64解码器,并使用os.Seek函数返回到循环结束前的文件开头,以便调用的函数(在此测试用例中为PrintBytes)能够在整个for循环中从头到尾一次又一次地处理文件。这是我的(我敢肯定非常不合惯用的)代码,在main()中主for循环的第二次迭代期间,它未能将第二个字节读入长度为2且容量为2的[]字节:packagemainimport("encoding/base64""io""log""net/http""os")var(remote_filestring="http://cryptopals.com/static/challeng

mongodb - 如何将引用的可打印解码器实现为阅读电子邮件正文?

以下代码(完整代码的一部分)创建一个阅读器,然后读取电子邮件的正文并将它们存储到“最终正文”中。然后将这个最终的主体传递到mongoldb中进行存档。但是,读取的消息正文是可打印的,我希望将传递到mongodb的正文解码为utf8。如何在这段代码中实现引用的可打印包,具体在哪里?//Createsareader.mediaType,params,err:=mime.ParseMediaType(contentType)iferr!=nil{log.Println("Unabletoreadthetypeofthecontent.")log.Println(err)return}read

Gocql 自定义编码器

我有一个包含元组列的表,该列由一个int64和一个uuid配对组成:CREATETABLEks.mytable{fileidfrozen>,hitscounter,...我目前可以使用如下cql语句设置字段:UPDATEks.mytablehits=hits+1WHEREfileid=(??);我传入2个变量作为参数,一个int64和一个gocql.UUID。我不想到处移动2个变量,而是想把它们放在一个结构中,比如typeMyIDstruct{idint64uidgocql.UUID}然后使用Marshaller将它们传递到UPDATE语句中。这可能吗?我不确定是否可以为元组字段传入单

go - 为什么使用 unix-compress 和 go compress/lzw 会产生不同的文件,而其他解码器无法读取?

我在终端中使用compressfile.txt压缩了一个文件并得到了(如预期的那样)file.txt.Z当我将该文件传递给Go中的ioutil.ReadFile时,buf0,err:=ioutil.ReadFile("file.txt.Z")我收到错误(上面的行是116):finder_test.go:116:lzw:invalidcode我发现如果我使用compress/lzw包压缩它,Go会接受该文件,我只是使用了awebsite中的代码那样做。我只修改了行outputFile,err:=os.Create("file.txt.lzw")我将.lzw更改为.Z。然后在顶部的Go代码

Go 的 json 解码器无法处理最简单的输入。为什么?

我正准备在Go中编写一个AJAX类型的应用程序,这是一个示例应用程序,用于熟悉它的工作原理。但事实并非如此。InputRec(irec)字段在解码后只有零。首先是来源:packagemainimport("net/http""encoding/json""fmt"//"io/ioutil")typeInputRecstruct{a,bfloat64}typeRetRecstruct{sumfloat64}funcaddHandler(whttp.ResponseWriter,r*http.Request){varoutJson[]bytevarirecInputRecvarorecRe

json - Golang JSON 解码器无法识别类型

我还是一个Golang初学者,我正在尝试编写一个通用函数来为ReST请求提供服务。我传递了一个函数来创建一个新资源(结构),并在其上实现了一个接口(interface),因为我还会调用该结构上的方法。解码JSON时,记录类型会显示正确的(结构)类型,但JSON解码器似乎只能识别它无法解码的接口(interface)。packagemainimport("encoding/json""github.com/julienschmidt/httprouter""log""net/http""strings")//generalresourceinterfacetyperesourceinte

go - 如何将xml解码器连接到go exec的stdoutPipe()

我在链接这里时遇到了一些问题。我做错了什么?packagemainimport("encoding/xml""fmt""log""os/exec")funccheckError(errerror){iferr!=nil{log.Fatalf("Error:%s",err)}}funcmetrics(){cmd:=exec.Command("nvidia-smi","--query","--xml-format")out,err:=cmd.StdoutPipe()checkError(err)cmd.Start()defercmd.Wait()gofunc(){vardatainterf

go - 我如何遍历解码器?

我有Python背景,所以倾向于从迭代器的角度来思考。在我看来,Go中的range关键字旨在让我们以几乎相同的方式思考,所以我想在Go中做一些语义上等同于这段Python代码的事情:forobjinjson_decoder:#businesslogic这是Go中的激励案例;考虑以下功能:func(c*GorpController)Create(dec*json.Decoder){//businesslogic}我希望能够将其实现为:forsomeValue:=rangedec{//businesslogic}是否有某种方法可以将range与Decoder接口(interface)一起使

json - 在 golang 版本之间使用自定义解码器解析 json 的差异

我正在尝试将一些针对go1.3编写的代码移植到当前版本,但遇到了不同版本之间json解析行为不同的情况。我们正在使用自定义解码器来解析某些特定的日期格式。看起来最近的版本在字符串中传递了额外的引号,而1.3没有。这是错误还是有意更改?在这种情况下,编写与不同版本兼容的代码的最佳方式是什么。只是去寻找所有使用自定义解码器的地方总是去掉额外的引号(如果有的话)?不得不这样做很遗憾-所以我希望有更好的方法。packagemainimport"encoding/json"import"fmt"import"time"typeTimestamp1time.Timefunc(t*Timestamp

go - 获取字符集字符串的编码器/解码器

是否有内置函数或受支持的包中的函数来获取基于输入字符集字符串,例如ISO-8859-1或ISO-8859-15?现在我看到的唯一方法是自己匹配它:funcgetEncoderForCharset(charsetstring)*encoding.Encoder{switchcharset{case"ISO-8859-1":returncharmap.ISO8859_1.NewEncoder()case"ISO-8859-15":returncharmap.ISO8859_15.NewEncoder()//etc.}panic("Unknowncharset\""+charset+"\".