diff --git a/libs/main/core/pistring.cpp b/libs/main/core/pistring.cpp index 2810adc6..1e1f43a5 100644 --- a/libs/main/core/pistring.cpp +++ b/libs/main/core/pistring.cpp @@ -513,6 +513,15 @@ PIByteArray PIString::toCharset(const char * c) const { } +PIString PIString::simplified() const { + PIString ret(*this); + for (int i = 0; i < ret.size_s(); ++i) + if (!ret[i].isAscii()) + ret[i] = '?'; + return ret; +} + + PIString & PIString::operator +=(const char * str) { if (!str) return *this; appendFromChars(str, -1, __syslocname__); diff --git a/libs/main/core/pistring.h b/libs/main/core/pistring.h index e6e08420..7b71b7be 100644 --- a/libs/main/core/pistring.h +++ b/libs/main/core/pistring.h @@ -852,6 +852,10 @@ public: //! \~russian Возвращает \a PIByteArray содержащий строку в указанной кодировке без завершающего нулевого байта. PIByteArray toCharset(const char * c) const; + //! \~english Returns \a PIString with non-ASCII symbols replaced with '?'. + //! \~russian Возвращает \a PIString с заменёнными '?' не-ASCII символами. + PIString simplified() const; + //! \~english Split string with delimiter "delim" to \a PIStringList. //! \~russian Разделяет строку в \a PIStringList через разделитель "delim". //! \~\details