Go中的切片字符串:如何切片阿拉伯语(或其他unicode)字符串?
我需要在围棋中切一根线。有时我有拉丁字符,否则我有阿拉伯字符,但阿拉伯语的[:1]返回不同的值Go中的切片字符串:如何切片阿拉伯语(或其他unicode)字符串?,unicode,go,slice,Unicode,Go,Slice,我需要在围棋中切一根线。有时我有拉丁字符,否则我有阿拉伯字符,但阿拉伯语的[:1]返回不同的值 package main import "fmt" func main() { a := "a" fmt.Println(a[:1]) // work b := "ذ" fmt.Println(b[:1]) // not work fmt.Println(b[:2]) // work fmt.Println(len(a) == len(b)) /
package main
import "fmt"
func main() {
a := "a"
fmt.Println(a[:1]) // work
b := "ذ"
fmt.Println(b[:1]) // not work
fmt.Println(b[:2]) // work
fmt.Println(len(a) == len(b)) // false
}
首先,你应该真正了解 下面是你如何实现你想要的:(我无法正确粘贴阿拉伯符号,但如果中文行得通,阿拉伯语也应该行) 输出为:
cdefghi
百科:关于中文
您可以使用
utf8string
软件包:
主程序包
导入“golang.org/x/exp/utf8string”
func main(){
a:=utf8string.NewString(“您可以在golang.org/x/exp/utf8string
的方法中使用。它起作用了。谢谢。注意:我使用了utf8.runecounnstring来获取字符串大小。函数len计算字节,而不是字符。
cdefghi
百科:关于中文