diff options
-rw-r--r-- | sc/source/core/tool/interpr1.cxx | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index ee039034b028..0b2226787f27 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -2795,9 +2795,15 @@ void ScInterpreter::ScChar() PushIllegalArgument(); else { - String aStr( '0' ); - aStr.SetChar( 0, ByteString::ConvertToUnicode( (sal_Char) fVal, gsl_getSystemTextEncoding() ) ); - PushString( aStr ); + //"classic" ByteString conversion flags + const sal_uInt32 convertFlags = + RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_DEFAULT | + RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_DEFAULT | + RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT; + + sal_Char cEncodedChar = static_cast<sal_Char>(fVal); + rtl::OUString aStr(&cEncodedChar, 1, gsl_getSystemTextEncoding(), convertFlags); + PushString(aStr); } } |