From a8525fe5cf2ba834ae39e7bfe078911d94957a70 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Wed, 13 Aug 2014 16:50:56 +0200 Subject: fdo#82418 prefer UTF-8 over UTF-16 Change-Id: Id2c990d24dc942a6d061146ea88cf53ee29a1c3d --- sc/source/ui/dbgui/scuiasciiopt.cxx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'sc') diff --git a/sc/source/ui/dbgui/scuiasciiopt.cxx b/sc/source/ui/dbgui/scuiasciiopt.cxx index 512cc5578e3d..a625ecbf6f4f 100644 --- a/sc/source/ui/dbgui/scuiasciiopt.cxx +++ b/sc/source/ui/dbgui/scuiasciiopt.cxx @@ -387,8 +387,19 @@ ScImportAsciiDlg::ScImportAsciiDlg( Window* pParent, const OUString& aDatName, // Insert one "SYSTEM" entry for compatibility in AsciiOptions and system // independent document linkage. pLbCharSet->InsertTextEncoding( RTL_TEXTENCODING_DONTKNOW, aCharSetUser ); - pLbCharSet->SelectTextEncoding( ePreselectUnicode == RTL_TEXTENCODING_DONTKNOW ? - osl_getThreadTextEncoding() : ePreselectUnicode ); + if ( ePreselectUnicode == RTL_TEXTENCODING_DONTKNOW ) + { + rtl_TextEncoding eSystemEncoding = osl_getThreadTextEncoding(); + // Prefer UTF-8, as UTF-16 would have already been detected from the stream. + // This gives a better chance that the file is going to be opened correctly. + if ( ( eSystemEncoding == RTL_TEXTENCODING_UNICODE ) && mpDatStream ) + eSystemEncoding = RTL_TEXTENCODING_UTF8; + pLbCharSet->SelectTextEncoding( eSystemEncoding ); + } + else + { + pLbCharSet->SelectTextEncoding( ePreselectUnicode ); + } if( nCharSet >= 0 && ePreselectUnicode == RTL_TEXTENCODING_DONTKNOW ) pLbCharSet->SelectEntryPos( static_cast(nCharSet) ); -- cgit