将字符串转到ascii字节数组


70

如何将字符串编码为ASCII字节数组?

Answers:


116

如果您正在寻找转换,那就做 byteArray := []byte(myString)

语言规范详细说明了字符串和某些类型的数组之间的转换(字节表示字节,整数表示Unicode点)


19
我认为cthom06实现了这一点,但严格来讲,这不是一个“ ASCII”字节数组。它更像一个UTF-8字节数组。如果字符串包含非ASCII字符,则这些字符的字节也将在此处。如果您想让代码在不同的语言中正常运行,则应始终牢记这一点。
埃文·肖

1
@Chickencha是真的。我给了一个快速而肮脏的答案。但是我确实提到了[] int转换,以便更好地处理unicode
cthom06'1

3
从Go版本1开始,您应该使用内置的符文数据类型进行Unicode处理。
汉森2012年

语言规范详细介绍了字符串和某些类型的数组之间的转换(字节表示字节,整数表示Unicode点)。=>编码/解码为UTF8。
fjjiaboming

ASCII字符大于127怎么办?然后,此解决方案将返回一个2字节的字符,但是ASCII仅是一个字节。例如角色170?
TehSphinX

8

您可能不需要执行任何操作。如果只需要读取字符串的字节,则可以直接执行以下操作:

c := s[3]

cthom06的答案为您提供了可以操作的字节片:

b := []byte(s)
b[3] = c

然后,您可以根据需要从修改后的字节片中创建一个新字符串:

s = string(b)

但是您提到了ASCII。如果您的字符串以ASCII开头,那么就完成了。如果还包含其他内容,则您还有更多需要处理的问题,并且可能想发布另一个问题,以获取有关数据的更多详细信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.