# HG changeset patch # User Sebastien Jodogne # Date 1561465126 -7200 # Node ID b3bdd6dc10f2c6688950d1d33cfa88068383a3ed # Parent d30668b1a44afe0527cad1260dad56ec3371d1f0 don't change encoding of SpecificCharacterSet diff -r d30668b1a44a -r b3bdd6dc10f2 Core/DicomParsing/DicomWebJsonVisitor.cpp --- a/Core/DicomParsing/DicomWebJsonVisitor.cpp Tue Jun 25 12:15:03 2019 +0200 +++ b/Core/DicomParsing/DicomWebJsonVisitor.cpp Tue Jun 25 14:18:46 2019 +0200 @@ -558,9 +558,9 @@ tokens.size() > 1 && tokens[0].empty()) { - std::string s = tokens[1]; - tokens.clear(); - tokens.push_back(s); + // Specific character set with code extension: Remove the + // first element from the vector of encodings + tokens.erase(tokens.begin()); } node[KEY_VALUE] = Json::arrayValue; diff -r d30668b1a44a -r b3bdd6dc10f2 Core/DicomParsing/FromDcmtkBridge.cpp --- a/Core/DicomParsing/FromDcmtkBridge.cpp Tue Jun 25 12:15:03 2019 +0200 +++ b/Core/DicomParsing/FromDcmtkBridge.cpp Tue Jun 25 14:18:46 2019 +0200 @@ -2312,8 +2312,15 @@ if (c != NULL) // This case corresponds to the empty string { - std::string s(c); - utf8 = Toolbox::ConvertToUtf8(s, encoding, hasCodeExtensions); + if (element.getTag() == DCM_SpecificCharacterSet) + { + utf8.assign(c); + } + else + { + std::string s(c); + utf8 = Toolbox::ConvertToUtf8(s, encoding, hasCodeExtensions); + } } std::string newValue;