编辑代码

package main

import (
	"fmt"
)

func textToBinaryLatin1(text string) []byte {
	result := make([]byte, len(text))
	for i, char := range text {
		if char <= 255 {
			result[i] = byte(char)
		} else {
			result[i] = '?' // 对于超出 Latin-1 范围的字符,使用问号或其他合适的替代字符
		}
	}
	return result
}

func binaryToTextLatin1(binaryData []byte) string {
	return string(binaryData)
}

func main() {
	// 要表示为二进制数据流的文本
	textData := "In UTF-8, a Chinese character is usually represented by three bytes. UTF-8 is a variable-length character encoding that can use between one and four bytes to represent different characters."
    fmt.Println("Original Text:", textData)
	// 将文本编码为 ISO-8859-1(Latin-1)的二进制数据流
	binaryData := textToBinaryLatin1(textData)

	// 打印二进制数据流
	fmt.Printf("Binary Data: %8b\n", binaryData)

	// 将 ISO-8859-1(Latin-1)的二进制数据流还原为文本
	decodedText := binaryToTextLatin1(binaryData)

	// 打印还原后的文本
	fmt.Println("Decoded Text:", decodedText)
}