短版: 打印3,这很有意义,因为Go语言中的字符串基本上是一个字节的片,并且需要三个字节来表示此字符。我如何才能获得len和regexp函数来使用字符而不是字节。
package main
import "fmt"
func main() {
fmt.Println(len("ウ"))//returns 3
fmt.Println(utf8.RuneCountInString("ウ"))//returns 1
}
背景:
我正在使用JDO(Java)将文本保存到GAE数据存储中。
然后,我使用Go处理文本,特别是使用regexp.FindStringIndex并将索引保存到数据存储中。
然后回到Java领域,我发送未修改的文本,并通过json索引到GWT客户端。
索引在“移动”过程中的某个位置,因此当它在客户端上时,它们已关闭。
看来问题与字符编码有关,我假设Java / Go解释文本(索引)的方式与utf-8 char / byte不同?我在regexp包中看到了对符文的引用。
我想我可以使regexp.FindStringIndex返回go中的字节索引,或者使GWT客户端了解utf-8索引。
有什么建议么?如果将来需要国际化该应用程序,我应该使用UTF-8,对吗?
扬帆大鱼
相关分类