`
DarkWingBoy
  • 浏览: 50696 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

golang字符、字符串的那些事儿

 
阅读更多

通过下边的代码可以看出,r实质是int32,占用4个字节,值是25105;s是string,占用3个字节,值是e68891.

推断r应该是unicode编码的,s是utf8编码的.

package main
           
import(
    "fmt"
)
           
func main() {
    r := '我' 
    fmt.Printf("%t\n", r)
    // %!t(int32=25105)
           
    s := "我"
    fmt.Printf("%t, %d %x\n", s, len(s), s)
    // %!t(string=我) 3 e68891
           
    fmt.Printf("%b\n", int32(r))
    // 110001000010001
    // 0000 0000 0000 0000 0110 0010 0001 0001
               
    for _, b := range []byte(s) {
        fmt.Printf("%b\n", b)
    }
    // 11100110
    // 10001000
    // 10010001
}

现在打印出二进制的值进行比较,整理如下:

0000 0000 0000 0000 0110 0010 0001 0001 // r
          1110 0110 1000 1000 1001 0001 // s

然后转换s转换为r,也就是utf8转换为unicode

          1110 0110 1000 1000 1001 0001 // s
               0110   00 1000   01 0001 // s utf8 -> unicode
          0000 0000 0110 0010 0001 0001 // s utf8 -> unicode
0000 0000 0000 0000 0110 0010 0001 0001 // r

转换成功 得出结论 r是unicode编码 s是utf8 编码

golang和java一样 字符是unicode编码 字符串是utf8编码

底层这些东东一定要弄明白,不然会经常害人的.

分享到:
评论

相关推荐

    Golang实现字符串倒序的几种解决方案

    本文主要给大家介绍了关于Golang实现字符串倒序的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 字符串倒置如下: Hello World –> dlroW olleH 解决方案1: length := len(str) ...

    golang 中获取字符串个数的方法

    在Golang中,获取字符串个数实际上是指计算字符串中字符的数量,而非字节的数量。由于Golang中的字符串是UTF-8编码的,一个字符可能由一个或多个字节表示,因此不能简单地通过`len()`函数来获取字符串的字符数量。...

    2.Golang的基础语法(分隔符,注释,标识符,字符串拼接,空格)1

    在Golang编程语言中,...总的来说,理解Golang的基础语法,包括分隔符、注释、标识符和字符串拼接,对于编写高效且易于维护的代码至关重要。同时,遵循良好的编码风格,如适当使用空格,可以极大地提升代码的可读性。

    ttlcache, 在内存中,golang的字符串字符串映射过期,.zip

    ttlcache, 在内存中,golang的字符串字符串映射过期, TTLCache - 具有过期的内存LRU缓存TTLCache是golang中字符串映射的最小包装,其中的条目为线程安全在一定时间后自动过期在 Get 上自动延长到期时间 用法import ...

    Golang中文字符串截取函数实现原理

    在Golang中处理字符串时,对于英文、数字等单字节字符,直接使用切片进行截取操作是安全的,但是中文字符属于多字节字符,使用UTF-8编码的情况下,一个中文字符可能由三个字节组成。因此,如果在中文字符串上直接...

    Golang字符串的拼接方法汇总

    在Golang中,字符串拼接是一项常见的操作,尤其在日志记录、模板渲染以及数据处理等场景中。由于Golang的字符串本质是不可变的,因此每次拼接都会创建新的字符串对象,这可能会对性能产生影响。下面我们将详细介绍几...

    Golang字符串函数

    Golang 文章目录Golang1 strconv2 strings 1 strconv 应该先导入包 import ( “fmt” ...整数转字符串 str := strconv.Itoa(123) fmt.Println(str) 结果 “123” 字符串转[]byte var bytes = []by

    Go-一个简单而快速的Go库用于将输入字符串模糊匹配到目标字符串列表

    标题中的“Go-一个简单而快速的Go库用于将输入字符串模糊匹配到目标字符串列表”表明,这是一个基于Go语言开发的库,其主要功能是实现输入字符串与一系列目标字符串之间的模糊匹配。在文本处理领域,模糊匹配是一种...

    stringy:在Stringy包的帮助下,将字符串转换为驼峰式案例,蛇形案例,烤肉串案例,自定义定界符,填充字符串,挑逗字符串和许多其他功能

    Golang字符串操作帮助程序包 在Stringy软件包的帮助下,将字符串转换为驼峰式案例,蛇形案例,烤肉串案例/ slugify,自定义定界符,填充字符串,挑逗字符串和许多其他功能。 您可以将骆驼皮转换为蛇皮或kebabcase,...

    kmp算法-使用kmp算法在Golang中实现字符串匹配.zip

    Golang作为一个现代化的编程语言,提供了丰富的字符串处理函数和高效的内存管理,非常适合实现KMP算法这样的字符串操作。通过熟练掌握KMP算法,开发者可以在处理大量文本数据时,提高搜索效率,降低时间复杂度。

    strutil:Golang度量标准,用于计算字符串相似度和其他字符串实用程序功能

    Strutil strutil提供了用于计算字符串相似度的字符串度量标准以及其他字符串实用程序功能。 完整文档可在以下找到: : 。安装 go get github.com/adrg/strutil字符串指标杰罗·温克勒史密斯·沃特曼·高图索伦森-...

    Go-geopattern-在golang中从一个字符串创建漂亮的生成图像模式

    在Golang中,`Go-geopattern`是一个开源库,它允许开发者从任何字符串生成美观的几何图案,这些图案可以用于网站背景、验证码、艺术作品等。这个库的灵感来源于JavaScript的`GeoPattern`库,但在Golang中提供了更...

    clicolor:简单地为 golang 着色 CLI 字符串

    ##clicolor 简单地为 golang 着色 CLI 字符串。 ##用法 colorized := Colorize ( "Golang" , "white" , "blue" ) fmt . Println ( colorized ) 截屏

    Golang 统计字符串字数的方法示例

    在Golang中,统计字符串字数是一个常见的任务,特别是在处理用户输入或文本分析时。本文将探讨如何在Golang中实现这一功能,并提供两种不同的方法。 首先,我们要明确“字数”的定义。在这个示例中,我们将遵循一种...

    golang调用c++DLL传递char*型参数读取返回char*字符串内容

    golang调用c++DLL返回值为char*参数为const char*,读取返回DLL返回值,传递char*型参数

    Go-此工具用于将16进制字符串转换成10进制byte数组

    - **16进制字符串**:由0-9和A-F(或a-f)字符组成的字符串,表示16进制数值。每个字符代表4位二进制,因此一个16进制数字可以表示0到255的十进制值。 - **10进制byte数组**:在计算机中,byte是数据的基本单位,...

    简单谈谈Golang中的字符串与字节数组

    在Golang中,字符串是一种非常基础且常用的数据类型,它实际上是字符组成的只读字节数组。字符串在内存中以连续的方式存储,每个字符对应一个字节,这与C语言中的char数组类似。然而,与C不同的是,Golang中的字符串...

    matchr:Go编程语言的近似字符串匹配库

    在这种情况下,与其使用精确的字符串比较,不如使用一种方法来识别两个字符串的相似程度至关重要。 相似度函数可以满足某些数据集的需求,以便做出更好的匹配决策。 匹配器库提供了其中一些相似功能。

    Golang中的Unicode与字符串示例详解

    在Golang中,Unicode和字符串处理是编程时不可或缺的一部分。Go语言的设计者们为了提供高效且灵活的字符串操作,对Unicode编码进行了深入的集成。在本文中,我们将深入探讨Go语言中的Unicode编码以及字符串的使用。 ...

Global site tag (gtag.js) - Google Analytics