当前位置: 首页 > news >正文

怎么做盗版网站赚钱seo排名关键词搜索结果

怎么做盗版网站赚钱,seo排名关键词搜索结果,网站空间多久续一次费,用dw做音乐网站系统的代码虽然golang里面的默认编码都是统一的unicode utf8编码, 但是我们在调用外部系统提供的api时,就可能会遇到别人的接口提供的编码非 utf8编码,而是gbk/gb2312编码, 这时候我们就必须要将别人的gbk编码转换为go语言里面的默认编码ut…

虽然golang里面的默认编码都是统一的unicode  utf8编码, 但是我们在调用外部系统提供的api时,就可能会遇到别人的接口提供的编码非 utf8编码,而是gbk/gb2312编码, 这时候我们就必须要将别人的gbk编码转换为go语言里面的默认编码utf8

字符编码转换基础原理解析

        要对编码进行转换,我们就需要知道go语言里面的字符表示形式,在go语言里面,任何的字符都是通过类型byte(也就是类型 uint8 )来进行表示的, 即任何的字符在go语言里面最终都会被转换为对应的byte数字。  而同一个字符,不同的编码方式,他们对应的数字是不一样的。 我们的编码转换实际上也很简单,我们只需要先了解某个编码他们所表示的数字范围后即可很轻松的进行转换。

GBK UTF8字符,字符串相互转换函数


// gbk to utf8 encoding conversion
func GbkToUtf8(s []byte) ([]byte, error) {reader := transform.NewReader(bytes.NewReader(s), simplifiedchinese.GBK.NewDecoder())d, e := io.ReadAll(reader)if e != nil {return nil, e}return d, nil
}// utf8 to gbk encoding conversion
func Utf8ToGbk(s []byte) ([]byte, error) {reader := transform.NewReader(bytes.NewReader(s), simplifiedchinese.GBK.NewEncoder())d, e := io.ReadAll(reader)if e != nil {return nil, e}return d, nil
}// 字符串编码 gbk到utf8转换
func StrGbkToUtf8(str string) (string, error) {data, err := GbkToUtf8([]byte(str))return string(data), err
}// 字符串编码 utf8到gbk转换
func StrUtf8ToGbk(str string) (string, error) {data, err := Utf8ToGbk([]byte(str))return string(data), err
}

是否GBK/GB2312编码字符、字符串判断函数


// 判断数据是否是gbk编码
func IsGbkData(data []byte) bool {length := len(data)var i int = 0for i < length {// // ASCII 编码的范围:  十进制 => 0 - 127 。  十六进制: 0x00  -  0x7F 。if data[i] <= 127 {i++continue} else {// GB2312编码的范围: 十进制 => 高位字节:161 - 247, 十六进制:0xA1 - 0xF7// 低位字节:161 - 254 , 十六进制:0xA1 - 0xFEif data[i] >=129 &&data[i] <= 254 &&data[i+1] >= 64 &&data[i+1] <= 254 &&data[i+1] <= 247 {i += 2continue} else {return false}}}return true
}// 判断字符串是否是gbk编码
func IsGbkStr(str string) bool {if str == "" {return false}return IsGbkData([]byte(str))
}

使用方法

  • 安装依赖: go get  github.com/tekintian/go-str-utils
  • 使用示例:
package mainimport (strutils "github.com/tekintian/go-str-utils"
)func main() {// gb2312测试数据gb2312Data := []uint8{10, 10, 10, 10, 10, 123, 34, 105, 112, 34, 58, 34, 49, 49, 50, 46, 49, 49, 55, 46, 55, 53, 46, 57, 57, 34, 44, 34, 112, 114, 111, 34, 58, 34, 212, 198, 196, 207, 202, 161, 34, 44, 34, 112, 114, 111, 67, 111, 100, 101, 34, 58, 34, 53, 51, 48, 48, 48, 48, 34, 44, 34, 99, 105, 116, 121, 34, 58, 34, 192, 165, 195, 247, 202, 208, 34, 44, 34, 99, 105, 116, 121, 67, 111, 100, 101, 34, 58, 34, 53, 51, 48, 49, 48, 48, 34, 44, 34, 114, 101, 103, 105, 111, 110, 34, 58, 34, 34, 44, 34, 114, 101, 103, 105, 111, 110, 67, 111, 100, 101, 34, 58, 34, 48, 34, 44, 34, 97, 100, 100, 114, 34, 58, 34, 212, 198, 196, 207, 202, 161, 192, 165, 195, 247, 202, 208, 32, 181, 231, 208, 197, 34, 44, 34, 114, 101, 103, 105, 111, 110, 78, 97, 109, 101, 115, 34, 58, 34, 34, 44, 34, 101, 114, 114, 34, 58, 34, 34, 125, 10, 10, 10, 10}if strutils.IsGbkData(gb2312Data) {// gbk编码的数据,需要进行转换为utf8utf8Data, err := strutils.GbkToUtf8(bytes)if err != nil {// 转换失败。。。。}// 转换成功 这里 utf8Data 就是utf8编码的数据了}}

总结:

 1.  GBK/GB2312编码的范围: 十进制 => 高位字节:161 - 247, 十六进制:0xA1 - 0xF7 ; 低位字节:161 - 254 , 十六进制:0xA1 - 0xFE

 2. 相同的字符  不同的编码他们的最终字符长度都是不一样的,因为不同编码他们所占据的字节位数不一样。

http://www.tj-hxxt.cn/news/77504.html

相关文章:

  • 怎样做网站检索数据分析手游推广加盟
  • 网站建设工作基本流程百度有几个总部
  • 网站托管西安百度官网app
  • 荥阳做网站推广小红书笔记关键词排名优化
  • 一家只做外卖的网站百度注册
  • 大众团购网站怎么做可以推广网站
  • 建立网站就是制作网页网站seo推广平台
  • 网站做qq链接seo是什么工作
  • 做网站的步骤 优帮云今日军事新闻头条
  • mega menu wordpress页面优化的方法
  • 石狮网站建设报价营销案例100例简短
  • 网站加速cdn自己做关键词推广排名软件
  • 做网站需要的硬件邀请注册推广赚钱的app
  • 百度自助网站建设seo站长工具推广平台
  • 集团网站建设 中企动力深圳网站建设微信开发
  • 临沂做网站哪里好长春网站建设解决方案
  • 网站内链案例宽带营销策略
  • 不关网站备案网址和网站的区别
  • 网站的提交重置按钮怎么做关键词优化最好的方法
  • 阳江网站制作建设手机端竞价恶意点击能防止吗
  • 网站建设方案申请报告百度资源分享网
  • 做网站的哪家公司好软文推广公司
  • 江苏加强政府网站内容建设管理办法seo网站推广有哪些
  • 做行业网站能赚钱吗搜索引擎优化解释
  • 网站公司网站免费推广
  • 鲜花网站建设的目标广州营销推广
  • 培训行业门户网站建设方案餐饮营销策划与运营
  • 江宁做网站价格太原关键词优化公司
  • 百度如何收录网站网站优化就是搜索引擎优化
  • 视屏网站制作北京网络营销外包公司哪家好