在Go语言中,将UTF-8字符串转换为对应的十进制Unicode码点序列可以通过遍历字符串中的每个字符,并将其转换为对应的十进制数值来实现。以下是一个完整的示例代码:
package main
import (
"fmt"
"strconv"
)
func stringToDecimal(s string) string {
var result string
for _, r := range s {
result += strconv.Itoa(int(r))
}
return result
}
func main() {
input := "abc"
output := stringToDecimal(input)
fmt.Println(output) // 输出: 979899
}
代码说明:
- 使用
range遍历字符串,这会自动处理UTF-8字符,返回每个字符的rune值
- 将rune转换为int类型,然后使用
strconv.Itoa转换为十进制字符串
- 将所有字符的十进制表示连接起来
对于多字节字符的情况:
func main() {
fmt.Println(stringToDecimal("a")) // 输出: 97
fmt.Println(stringToDecimal("abc")) // 输出: 979899
fmt.Println(stringToDecimal("中文")) // 输出: 200132597
}
需要注意的是,这种方法会将每个字符的Unicode码点转换为十进制数字。对于ASCII字符(如a,b,c),结果与ASCII码值一致;对于非ASCII字符,会输出对应的Unicode码点十进制值。