Browse Source

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

Vladimir Vissoultchev 9 years ago
parent
commit
2cc050e21e
3 changed files with 4 additions and 4 deletions
  1. 2 2
      modules/base/template.go
  2. 1 1
      modules/setting/setting.go
  3. 1 1
      routers/repo/download.go

+ 2 - 2
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)
 	}
 

+ 1 - 1
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)

+ 1 - 1
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 {