[Libreoffice-commits] core.git: sc/source

David Tardon dtardon at redhat.com
Wed Aug 13 08:07:14 PDT 2014


 sc/source/ui/dbgui/scuiasciiopt.cxx |   15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

New commits:
commit a8525fe5cf2ba834ae39e7bfe078911d94957a70
Author: David Tardon <dtardon at redhat.com>
Date:   Wed Aug 13 16:50:56 2014 +0200

    fdo#82418 prefer UTF-8 over UTF-16
    
    Change-Id: Id2c990d24dc942a6d061146ea88cf53ee29a1c3d

diff --git a/sc/source/ui/dbgui/scuiasciiopt.cxx b/sc/source/ui/dbgui/scuiasciiopt.cxx
index 512cc55..a625ecb 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<sal_uInt16>(nCharSet) );


More information about the Libreoffice-commits mailing list