我遇到了go新模块系统的问题,因为我想定义一个本地模块并将其导入主程序中.本地程序包驻留在主程序包/根文件夹的文件夹中.想象一下以下的项目结构$GOPATH.
./main.go
package main
import "fmt"
import "example.com/localModule/model"
func main() {
var p = model.Person{name: "Dieter", age:25}
fmt.Printf("Hello %s\n", p.name)
}
Run Code Online (Sandbox Code Playgroud)
./model/person.go
package model
type Person struct {
name string
age int
}
Run Code Online (Sandbox Code Playgroud)
在根文件夹中,我通过调用初始化了一个模块
go mod init example.com/localModule
Run Code Online (Sandbox Code Playgroud)
在model/文件夹中,然后通过调用初始化子模块
go mod init example.com/localModule/model
Run Code Online (Sandbox Code Playgroud)
在根文件夹中调用以下命令失败.
$ go get
go build example.com/localModule/model: no Go files in
$ go build
main.go:4:8: unknown import path "example.com/localModule/model": cannot find module providing package example.com/localModule/model
Run Code Online (Sandbox Code Playgroud)
go get的错误消息被切断了,我不会错误地解析它.
我不打算推动模块到服务器,并与只需要引用本地包的方式model,所以我选择了example.com/localModule/ …
看来我在文件编码方面遇到了麻烦。它是在 CentOS 服务器上通过 SSH 使用 vim 创建的文本文件。在浏览器中查看文件时,文件的编码存在问题。
\n\n我创建了一个测试文件,它解释了这种行为:
\n\nres.tobscore.com/test.txt
\n\n这就是我希望输出的样子(这只是一个使用特殊字符来正确显示变音符号的 html 文件):
\n\nres.tobscore.com/test.html
\n\n在终端中使用命令 file 和 cat 会显示以下输出:
\n\nuser>file test.txt \ntest.txt: UTF-8 Unicode English text\nuser>cat test.txt \nThis is a testfile. I'm using the German Umlaute and the euro sign, to test\nthe encoding.\nEuro - \xe2\x82\xac\nScharfes S - \xc3\x9f\nAe - \xc3\x84\nOe - \xc3\x96\nUe - \xc3\x9c\nRun Code Online (Sandbox Code Playgroud)\n\n如您所见,它是 utf-8 unicode 并且显示正确。您有什么建议吗?为什么我的浏览器(Firefox 和 Chrome)无法显示它?使用我的平板电脑(以德语设置)用本机浏览器检查它显示了正确的结果,但是用 Chrome 尝试它显示了相同的可怕/错误的输出。\n有没有办法设置编码,以便在每个环境中显示它相同的输出?
\n