summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/source/core/tool/interpr1.cxx12
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);
}
}