Go 修改字符串中的字符(中文亂碼)

問題復現:修改字符串的第一個中文數組

先對原字符串作切片,而後進行拼接,獲得新的字符串blog

func ModifyString(str string) string {
    tempStr := str[1:]
    str = "大" + tempStr
    return str
}

func main(){
    ret := ModifyString("你好世界")
    fmt.Println(ret)
}

運行效果:索引

大��好世界

切片默認是根據 byte 進行切割的,中文是 3 個 byte 組成,致使上面殘留兩個多餘的 byte字符串

 

解決方法:string

那麼在切片時指定 3 個 byte 嘗試下:class

func ModifyString(str string) string {
    tempStr := str[3:]
    str = "大" + tempStr
    return str
}

運行效果:方法

大好世界

 

另一種方式:di

步驟:字符

  1. 先把字符串變成字符數組
  2. 而後經過數組改變索引對應的值
  3. 而後將數組轉成新的字符串
func ModifyString(str string) string {
    strArray := []rune(str)

    strArray[0] = '大'

    str = string(strArray)

    return str
}

運行效果:中文

大好世界
相關文章
相關標籤/搜索