diff --git a/generator/generator_tool/generator_tool.pro b/generator/generator_tool/generator_tool.pro index 61b08064cb..b2d5c6c1bd 100644 --- a/generator/generator_tool/generator_tool.pro +++ b/generator/generator_tool/generator_tool.pro @@ -9,7 +9,7 @@ CONFIG += console CONFIG -= app_bundle TEMPLATE = app -# needed for Platform::WorkingDir() +# needed for Platform::WorkingDir() and unicode combining QT += core win32:LIBS += -lShell32 diff --git a/generator/osm2type.cpp b/generator/osm2type.cpp index 4ab8fa8aff..0dd87f42ca 100644 --- a/generator/osm2type.cpp +++ b/generator/osm2type.cpp @@ -18,7 +18,7 @@ #include "../std/set.hpp" #include "../std/algorithm.hpp" -#include "../base/start_mem_debug.hpp" +#include namespace ftype { @@ -548,7 +548,14 @@ namespace ftype { string lang; strings::Tokenize(k, "\t :", get_lang(lang)); if (!lang.empty()) - m_params.name.AddString(lang, v); + { + // Unicode Compatibility Decomposition, + // followed by Canonical Composition (NFKC). + // Needed for better search matching + QByteArray const normBytes = QString::fromUtf8( + v.c_str()).normalized(QString::NormalizationForm_KC).toUtf8(); + m_params.name.AddString(lang, normBytes.constData()); + } // get layer if (k == "layer" && m_params.layer == 0)