gb2312 区位码定位公式  offset:=(94*(区号-0x0a-1)+(位号-0x0a-1))*32

package main
import (
    "fmt"
    "os"
    "github.com/gogf/gf/v2/encoding/gcharset"
)

func main() {
    //utf-8转GBK2312
    str, err := gcharset.UTF8To("GBK", "我们")
    if err != nil {
        panic(err)
    }

    bytes := []byte(str)
    a:=int(bytes[2]-0xa0)-1  //取们的区号
    b:=int(bytes[3]-0xa0)-1  //取们的位号

    fmt.Println(a,b)

    wz:=int64((94*a+b)*32) //偏移量
    fmt.Printf("%d",wz)
    file, err := os.Open("HZK16") //打开获取文件句柄
    if err != nil {
        fmt.Println(err)
        return
    }
    defer file.Close()
    file.Seek(wz,0) //从文件开始偏移多少
    data := make([]byte, 32) //创建一个切片,大小32字节
    file.Read(data)//读偏移位置开始后的32个字节
    fmt.Println(" ")
    for k,v:=range data {
        i:=0
        for i<8{
         if (v&(0x80>>i))>0 {
            fmt.Print("●")
         }else{fmt.Print(" ")}
         i++
        }
    if k%2!=0{
        fmt.Println(" ")
    }
    }

}