diff --git a/src/ifcparse/IfcCharacterDecoder.cpp b/src/ifcparse/IfcCharacterDecoder.cpp index 004085b0e7..dd592b3349 100644 --- a/src/ifcparse/IfcCharacterDecoder.cpp +++ b/src/ifcparse/IfcCharacterDecoder.cpp @@ -300,13 +300,17 @@ char IfcCharacterDecoder::substitution_character = '_'; IfcCharacterEncoder::IfcCharacterEncoder(const std::string& input) { +#ifdef HAVE_ICU if ( !converter) converter = ucnv_open("utf-8", &status); +#endif str = input; } IfcCharacterEncoder::~IfcCharacterEncoder() { +#ifdef HAVE_ICU if ( !converter) ucnv_close(converter); converter = 0; +#endif } IfcCharacterEncoder::operator std::string() { diff --git a/src/ifcparse/IfcCharacterDecoder.h b/src/ifcparse/IfcCharacterDecoder.h index ce640ebfc4..113105c2ce 100644 --- a/src/ifcparse/IfcCharacterDecoder.h +++ b/src/ifcparse/IfcCharacterDecoder.h @@ -77,10 +77,10 @@ namespace IfcWrite { class IfcCharacterEncoder { private: + std::string str; #ifdef HAVE_ICU static UErrorCode status; static UConverter* converter; - std::string str; #endif public: IfcCharacterEncoder(const std::string& input);