Browse Source

Fix UTF-8 in upper-case, use ansi charset for all non UTF-8 encodings

pull/1404/head
Vladimir Vissoultchev 9 years ago
parent
commit
2cc050e21e
  1. 4
      modules/base/template.go
  2. 2
      modules/setting/setting.go
  3. 2
      routers/repo/download.go

4
modules/base/template.go

@ -55,7 +55,7 @@ func ShortSha(sha1 string) string {
func DetectEncoding(content []byte) (string, error) {
detector := chardet.NewTextDetector()
result, err := detector.DetectBest(content)
if result.Charset == "ISO-8859-1" {
if result.Charset != "UTF-8" && len(setting.AnsiCharset) > 0 {
return setting.AnsiCharset, err
}
return result.Charset, err
@ -67,7 +67,7 @@ func ToUtf8WithErr(content []byte) (error, string) {
return err, ""
}
if charsetLabel == "utf8" {
if charsetLabel == "UTF-8" {
return nil, string(content)
}

2
modules/setting/setting.go

@ -313,7 +313,7 @@ func NewConfigContext() {
RepoRootPath = path.Clean(RepoRootPath)
}
ScriptType = sec.Key("SCRIPT_TYPE").MustString("bash")
AnsiCharset = sec.Key("ANSI_CHARSET").MustString("ISO-8859-1")
AnsiCharset = sec.Key("ANSI_CHARSET").MustString("")
// UI settings.
IssuePagingNum = Cfg.Section("ui").Key("ISSUE_PAGING_NUM").MustInt(10)

2
routers/repo/download.go

@ -28,7 +28,7 @@ func ServeBlob(ctx *middleware.Context, blob *git.Blob) error {
_, isTextFile := base.IsTextFile(buf)
if isTextFile {
charset, _ := base.DetectEncoding(buf)
if charset != "utf-8" {
if charset != "UTF-8" {
ctx.Resp.Header().Set("Content-Type", "text/plain; charset="+charset)
}
} else {

Loading…
Cancel
Save