golang: 中文转unicode字符

一,代码:

Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,

以满足跨语言、跨平台进行文本转换、处理的要求

package controller

import (
	"encoding/json"
	"fmt"
	"github.com/gofiber/fiber/v2"
	"log"
	"strconv"
	"strings"
	"time"
	"unicode"
)

type TestController struct{}

func NewTestController() *TestController {
	return &TestController{}
}


func unicodeToUtf16(s string) string {
	var result []string
	for _, r := range s {
		if unicode.IsLetter(r) || unicode.IsNumber(r) {
			result = append(result, "\\u"+strconv.FormatInt(int64(r), 16))
		} else {
			result = append(result, string(rune(r)))
		}
	}
	return strings.Join(result, "")
}

func (dc *TestController) Test(c *fiber.Ctx) error {



	sText := "hello 你好"
	fmt.Println("原文:",sText)
    //第一种方式:
	textQuoted := strconv.QuoteToASCII(sText)
	textUnquoted := textQuoted[1 : len(textQuoted)-1]
	fmt.Println(textUnquoted)
    //第二种方式:
	text := unicodeToUtf16(sText)
	fmt.Println(text)
    
}

 

二,效果:

原文: hello 你好
hello \u4f60\u597d
\u68\u65\u6c\u6c\u6f \u4f60\u597d

 

posted @ 2024-11-25 19:43  刘宏缔的架构森林  阅读(9)  评论(0编辑  收藏  举报