diff options
| author | Neil <nyamatongwe@gmail.com> | 2020-06-24 15:00:50 +1000 | 
|---|---|---|
| committer | Neil <nyamatongwe@gmail.com> | 2020-06-24 15:00:50 +1000 | 
| commit | 69d678787645b2dd7d0cd40db4aa5c538ab13f9b (patch) | |
| tree | 2058ecc0057a30473b082e2cd08a5f766e4eba79 /qt/ScintillaEditBase/ScintillaQt.cpp | |
| parent | b047c81396af14e5497d969b37b1df9d67d09d17 (diff) | |
| download | scintilla-mirror-69d678787645b2dd7d0cd40db4aa5c538ab13f9b.tar.gz | |
Converting between UTF-8 and current encoding.
Allows platform-independent code to be written just to handle Unicode.
Diffstat (limited to 'qt/ScintillaEditBase/ScintillaQt.cpp')
| -rw-r--r-- | qt/ScintillaEditBase/ScintillaQt.cpp | 22 | 
1 files changed, 22 insertions, 0 deletions
diff --git a/qt/ScintillaEditBase/ScintillaQt.cpp b/qt/ScintillaEditBase/ScintillaQt.cpp index 374027bd0..761ff78bb 100644 --- a/qt/ScintillaEditBase/ScintillaQt.cpp +++ b/qt/ScintillaEditBase/ScintillaQt.cpp @@ -250,6 +250,28 @@ bool ScintillaQt::ValidCodePage(int codePage) const  	|| codePage == 1361;  } +std::string ScintillaQt::UTF8FromEncoded(std::string_view encoded) const { +	if (IsUnicodeMode()) { +		return std::string(encoded); +	} else { +		QTextCodec *codec = QTextCodec::codecForName( +				CharacterSetID(CharacterSetOfDocument())); +		QString text = codec->toUnicode(encoded.data(), static_cast<int>(encoded.length())); +		return text.toStdString(); +	} +} + +std::string ScintillaQt::EncodedFromUTF8(std::string_view utf8) const { +	if (IsUnicodeMode()) { +		return std::string(utf8); +	} else { +		QString text = QString::fromUtf8(utf8.data(), static_cast<int>(utf8.length())); +		QTextCodec *codec = QTextCodec::codecForName( +				CharacterSetID(CharacterSetOfDocument())); +		QByteArray ba = codec->fromUnicode(text); +		return std::string(ba.data(), ba.length()); +	} +}  void ScintillaQt::ScrollText(Sci::Line linesToMove)  {  | 
