Fyne开发应用中文字乱码解决方案
安装statikgo get github.com/rakyll/statik使用 statikstatik -src=../font
安装 statik
go get github.com/rakyll/statik
使用 statik
statik -src=../font #src指定当前字体所在路径
执行后会在当前目录下生成statik目录,并在statik目录下生成statik.go

创建 dialog.go
dialog.go文件内容如下
package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/widget"
_ "hhb/api/statik"
"github.com/rakyll/statik/fs"
"io/ioutil"
"log"
"os"
)
var tmpFile, _ = ioutil.TempFile("", "*")
func init() {
fileSystem, err := fs.New()
if err != nil {
log.Fatalln(err.Error())
}
file, err := fileSystem.Open("/miniHei.ttf")
if err != nil {
log.Fatalln(err.Error())
}
content, err := ioutil.ReadAll(file)
if err != nil {
log.Fatalln(err.Error())
}
_, _ = tmpFile.Write(content)
}
func main(){
//删除临时文件
defer func() {
_ = tmpFile.Close()
_ = os.Remove(tmpFile.Name())
}()
//设置环境变量 FYNE_FONT
os.Setenv("FYNE_FONT", tmpFile.Name())
myApp := app.New()
myWindow := myApp.NewWindow("Canvas")
myWindow.SetContent(widget.NewLabel("我是中文"))
myWindow.ShowAndRun()
}注意
_ "hhb/api/statik" #这里要导入,要不然会报 no zip data registered,这个错误.hhb是go.mod 里的module 名。后面是刚才生成statik包的路径
运行 dialog.go,结果如图
go run dialog.go

发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~