Go错误:输入中出现意外Nul

Go错误:输入中出现意外Nul,go,Go,我刚刚在C:/go中安装了go.msi。 我设置了路径(C:\Go\bin)和GOPATH(E:\code\Go)。但是当我尝试运行“Go-run-test.Go”时,我得到了以下错误:test.Go:2:8:read C:\Go\src\fmt\export\u-test.Go:输入中意外的NUL 包干管 导入运行时:读取C:\Go\src\runtime\export\u unix\u test.Go:输入中出现意外NUL 我无法打开这些文件。 我的密码是: package mai

我刚刚在C:/go中安装了go.msi。 我设置了路径(C:\Go\bin)和GOPATH(E:\code\Go)。但是当我尝试运行“Go-run-test.Go”时,我得到了以下错误:test.Go:2:8:read C:\Go\src\fmt\export\u-test.Go:输入中意外的NUL 包干管 导入运行时:读取C:\Go\src\runtime\export\u unix\u test.Go:输入中出现意外NUL
我无法打开这些文件。 我的密码是:

    package main

    import "fmt"

    func main()  {
        fmt.Println("Something")
    }
test.go文件的路径是E:\code\go\test.go 当我运行go env时,我得到:

set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=E:\code\go
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
go版本的输出为:
go1.9.2版windows/amd64

您的
GOPATH
中缺少一些内容。您需要如下所示的文件夹结构:

E:\code\go\src\{repository}\{package}\gofile.go
因此,您可以将其设置为:

E:\code\go\src\local-only\testing\test.go

我在Windows 10上使用golang 1.10.0时遇到了同样的问题:
创建要与myProgram.go一起运行的文件时,生成了错误的编码:UCS-2 LE BOM

转换为UTF-8解决了输入中的NUL问题


默认情况下,CMDPowerShell核心不应出现此问题。

go env和
go version
命令的输出是什么?上面的测试代码也在哪个文件夹中?您在哪个文件夹中运行测试?请从Unicode更改为UTF-8,并查看它是否有效我与@Apolozeus在这方面合作:如果您使用记事本创建快速样本,它可以将其保存为“Unicode”,这意味着Windows上的UTF-16LE,而Go明确定义其源代码文件必须编码为UTF-8。上面写着UTF-8。这是一条关于文件编码错误的神秘错误消息。感谢您澄清它需要UTF-8,该结构仅在您打算导入任何包(位于
{workspace}/pkg
下)时才需要。像OP这样的哑
go-run
调用可以在任何地方进行。我发现,{packege}(测试)是不必要的。没有它,我运行代码谢谢!这解决了我的问题。默认情况下,powershell在Windows-1252中编码()。我不知道更改powershell的默认值会有什么副作用,所以我只是将VS代码中的默认控制台更改为cmd。在cmd中使用echo my text here>myFunc.go创建文件的效果与预期一样。我花了一些时间在我的答案@EmanuelLindström中添加了您的评论,再次感谢