You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Golang中将字符串编码为ASCII并转义特殊字符?

Golang实现特殊字符转Unicode转义序列的函数逻辑

需求很明确:把输入字符串中的指定特殊字符(比如&)替换成对应的Unicode转义序列(比如\u0026),下面直接说实现逻辑和代码:

核心实现逻辑

  • 遍历输入字符串的每一个字符:Go语言中字符串是UTF-8编码,用rune类型遍历能正确处理所有Unicode字符,避免乱码问题。
  • 匹配目标特殊字符:判断当前字符是否是需要转义的对象(比如&)。
  • 替换与拼接:如果是目标字符,就把对应的Unicode转义序列(注意要转义反斜杠,写成\\u0026)追加到结果中;如果不是,直接保留原字符。
  • 最终转换:把处理后的rune切片转回字符串返回。

基础版代码实现

func Convert(input string) string {
	var result []rune
	for _, char := range input {
		if char == '&' {
			// 追加转义序列,双反斜杠用于在字符串中表示一个实际的反斜杠
			result = append(result, []rune("\\u0026")...)
		} else {
			result = append(result, char)
		}
	}
	return string(result)
}

扩展版(支持多字符转义)

如果需要同时处理多个特殊字符,用map存储字符和对应转义序列的映射会更灵活:

func Convert(input string) string {
	// 定义需要转义的字符与对应Unicode序列的映射
	escapePairs := map[rune]string{
		'&': "\\u0026",
		'<': "\\u003c",
		'>': "\\u003e",
		'"': "\\u0022",
	}

	var result []rune
	for _, char := range input {
		// 检查当前字符是否需要转义
		if escapeSeq, exists := escapePairs[char]; exists {
			result = append(result, []rune(escapeSeq)...)
		} else {
			result = append(result, char)
		}
	}
	return string(result)
}

内容的提问来源于stack exchange,提问作者martin8768

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:54:54