SVNからのミラー
This commit is contained in:
44
lib.go
Normal file
44
lib.go
Normal file
@@ -0,0 +1,44 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user