bom

package module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 19, 2024 License: MIT Imports: 2 Imported by: 54

README

bom

strip UTF-8 byte order marks

GoDoc License GoReportCard

The bom package provides a convenient way to strip UTF-8 byte order marks (BOM) from the beginning of a byte slice or an io.Reader.

The Unicode Standard defines UTF-8 byte order marks as the byte sequence 0xEF,0xBB,0xBF, but neither requires nor recommends their use. The Go standard library provides no support for UTF-8 byte order marks, and it looks like it never will. To quote Andy Balholm in the discussion on this issue at https://groups.google.com/forum/#!topic/golang-nuts/OToNIPdfkks

The Go team includes the original designers of UTF-8, and they consider BOMs an aBOMination. They are reluctant to do anything to make life easier for people who use BOMs. :-)

(Although they did make the compiler accept source files with BOMs, if I remember right.)

In the same discussion thread another participant makes the comment that it should not be difficult to write an io.Reader that eats the BOM.

It isn't difficult, and here is one simple implementation.

Documentation

Overview

Package bom is used to clean up UTF-8 Byte Order Marks.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Clean

func Clean(b []byte) []byte

Clean returns b with the 3 byte BOM stripped off the front if it is present. If the BOM is not present, then b is returned.

func NewReader

func NewReader(r io.Reader) io.Reader

NewReader returns an io.Reader that will skip over initial UTF-8 byte order marks.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL