garbledreplacer

package module
v0.0.0-...-6ae16eb Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2023 License: MIT Imports: 4 Imported by: 0

README

garbledreplacer

GitHub Go Report Card GitHub Workflow Status GitHub Workflow Status

Overview

transform.Transformer to replace characters that cannot be converted from UTF-8 to another character encoding.

UTF-8 から別の文字コードに変換する際、変換出来ない文字を別の文字に置き換えるための transform.Transformer

Motivation

Golang標準の japanese.ShiftJIS 等のEncoderでは変換出来ない文字が合った場合 rune not supported by encoding errorが出てしまい変換ができない。

そのため、Encoderを通す前に変換できない文字を事前に別の文字に置き換える為のTransformerを作成した。

japanese.ShiftJIS japanese.EUCJP traditionalchinese.Big5 などのEncoderの前にtransform.Chainで動作する薄いwrapperとなっている。

Usage

const msg = "一二三四🍣五六七八九🍺十拾壱"

var buf bytes.Buffer
w := transform.NewWriter(&buf, garbledreplacer.NewTransformer(japanese.ShiftJIS, '?'))
if _, err := w.Write([]byte([]byte(msg))); err != nil {
    panic(err)
}
if err := w.Close(); err != nil {
    panic(err)
}

fmt.Println(buf.String())
// 一二三四?五六七八九?十拾壱

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidUTF8 = errors.New("invalid UTF-8 character")

Functions

func NewTransformer

func NewTransformer(enc encoding.Encoding, replaceRune rune) transform.Transformer

Types

This section is empty.

Jump to

Keyboard shortcuts

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