データを破壊せずに特殊文字を含む文字列を切り捨てます。私は使用できる文字の数に基づいて、それをやって途中でそれをカットしていますがGolangは、私がgolangに特殊文字を含む文字列を切り捨てる関数を記述しようとしています
"H㐀〾▓朗퐭텟şüöžåйкл¤"
の下に一つの例です。この結果、データが破損します。
結果は
H㐀〾▓朗퐭텟şüöžå�...
�
が存在しないはずのように出てきます。これらの特殊文字を検出し、これらの文字の長さに基づいて分割するにはどうすればよいですか?
package main
import (
"fmt"
"regexp"
)
var reNameBlacklist = regexp.MustCompile(`(&|>|<|\/|:|\n|\r)*`)
var maxFileNameLength = 30
// SanitizeName sanitizes user names in an email
func SanitizeName(name string, limit int) string {
result := name
reNameBlacklist.ReplaceAllString(result, "")
if len(result) > limit {
result = result[:limit] + "..."
}
return result
}
func main() {
str := "H㐀〾▓朗퐭텟şüöžåйкл¤"
fmt.Println(str)
strsan := SanitizeName(str, maxFileNameLength)
fmt.Println(strsan)
}
違いが1つである「...」ときの限界私は_shortened_文字列からブラックリストに文字を除去するように誘惑されたインチキックが、その後、あなたのいずれか(「意味( 'santitizeを変更する>>> abc "、3)'は '' abc ... ''の代わりに' '...' 'になり、コードを複雑にする必要があります。 – twotwotwo
我々の現在のロジックは、私が切り捨てその後 – Sakib