diff --git a/src/kumir2-libs/stdlib/kumirstdlib.hpp b/src/kumir2-libs/stdlib/kumirstdlib.hpp index fa17cdfb8e595131494304add4cd11e7bfb0aebd..f5b993e60fc69e938b42059dd9f31469ff34ef31 100644 --- a/src/kumir2-libs/stdlib/kumirstdlib.hpp +++ b/src/kumir2-libs/stdlib/kumirstdlib.hpp @@ -137,20 +137,40 @@ public: static void finalize() {} - static String fromUtf8(const std::string &s) + static String fromEncoding(Encoding enc, const std::string &s) { EncodingError encodingError; - String result = Coder::decode(UTF8, s, encodingError); + String result = Coder::decode(enc, s, encodingError); return result; } - static String fromAscii(const std::string &s) + static std::string toEncoding(Encoding enc, const String &s) { EncodingError encodingError; - String result = Coder::decode(ASCII, s, encodingError); + std::string result = Coder::encode(enc, s, encodingError); return result; } + static String fromAscii(const std::string &s) + { + return fromEncoding(ASCII, s); + } + + static std::string toAscii(const String &s) + { + return toEncoding(ASCII, s); + } + + static String fromUtf8(const std::string &s) + { + return fromEncoding(UTF8, s); + } + + static std::string toUtf8(const String &s) + { + return toEncoding(UTF8, s); + } + static std::string toLowerCase(const std::string &s); static std::string toUpperCase(const std::string &s);