|
@@ -71,6 +71,7 @@
|
|
|
#include <LibJS/SourceTextModule.h>
|
|
|
#include <LibLine/Editor.h>
|
|
|
#include <LibMain/Main.h>
|
|
|
+#include <LibTextCodec/Decoder.h>
|
|
|
#include <fcntl.h>
|
|
|
#include <signal.h>
|
|
|
#include <stdio.h>
|
|
@@ -1653,7 +1654,16 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
|
|
|
auto file = TRY(Core::File::open(path, Core::OpenMode::ReadOnly));
|
|
|
auto file_contents = file->read_all();
|
|
|
auto source = StringView { file_contents };
|
|
|
- builder.append(source);
|
|
|
+
|
|
|
+ if (Utf8View { file_contents }.validate()) {
|
|
|
+ builder.append(source);
|
|
|
+ } else {
|
|
|
+ auto* decoder = TextCodec::decoder_for("windows-1252");
|
|
|
+ VERIFY(decoder);
|
|
|
+
|
|
|
+ auto utf8_source = TextCodec::convert_input_to_utf8_using_given_decoder_unless_there_is_a_byte_order_mark(*decoder, source);
|
|
|
+ builder.append(utf8_source);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
source_name = script_paths[0];
|