spliti/lib.go

45 行
957 B
Go

package main
import (
"io"
"strings"
"bytes"
"golang.org/x/net/html"
"golang.org/x/text/encoding/japanese"
"golang.org/x/text/transform"
)
/* PHPであるstrip_tagsはGo言語で存在しないから、自分で作る */
func strip_tags(data string) string {
doc, err := html.Parse(strings.NewReader(data))
if err != nil {
panic("HTMLをパーシングに失敗。")
}
var buf bytes.Buffer
var f func(*html.Node)
f = func(n *html.Node) {
if n.Type == html.TextNode {
buf.WriteString(n.Data)
}
for c := n.FirstChild; c != nil; c = c.NextSibling {
f(c)
}
}
f(doc)
return buf.String()
}
func EUCJPToUTF8(input []byte) (string, error) {
transformer := japanese.EUCJP.NewDecoder()
reader := transform.NewReader(bytes.NewReader(input), transformer)
result, err := io.ReadAll(reader)
if err != nil {
return "エンコーディングに失敗", err
}
return string(result), nil
}