From 7bbf150b445dc8eb9ebefa740b30f6e8268c7412 Mon Sep 17 00:00:00 2001
From: Pierre Jeanjean <rhiobet@gmail.com>
Date: Sun, 2 Feb 2020 15:37:05 +0100
Subject: [PATCH] Fix charset detection and conversion issues

---
 libaegisub/common/line_iterator.cpp | 1 -
 src/charset_detect.cpp              | 5 ++++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/libaegisub/common/line_iterator.cpp b/libaegisub/common/line_iterator.cpp
index b288c831b..21754a41c 100644
--- a/libaegisub/common/line_iterator.cpp
+++ b/libaegisub/common/line_iterator.cpp
@@ -22,7 +22,6 @@ namespace agi {
 line_iterator_base::line_iterator_base(std::istream &stream, std::string encoding)
 : stream(&stream)
 {
-	boost::to_lower(encoding);
 	if (encoding != "utf-8") {
 		agi::charset::IconvWrapper c("utf-8", encoding.c_str());
 		c.Convert("\r", 1, reinterpret_cast<char *>(&cr), sizeof(int));
diff --git a/src/charset_detect.cpp b/src/charset_detect.cpp
index 9fd27e175..aab4ef7de 100644
--- a/src/charset_detect.cpp
+++ b/src/charset_detect.cpp
@@ -47,8 +47,11 @@ namespace CharSetDetect {
 
 std::string GetEncoding(agi::fs::path const& filename) {
 	auto encoding = agi::charset::Detect(filename);
-	if (!encoding.empty())
+	if (!encoding.empty()) {
+		if (!encoding.compare("ASCII"))
+			encoding = "utf-8";
 		return encoding;
+	}
 
 	auto choices = agi::charset::GetEncodingsList<wxArrayString>();
 	int choice = wxGetSingleChoiceIndex(
-- 
GitLab