+ new printStringInHexadecimal debug methof for UnicodestringS

This commit is contained in:
kelson42 2010-05-16 14:19:54 +00:00
parent eb12d13f59
commit eedce3b363
2 changed files with 17 additions and 0 deletions

View File

@ -60,13 +60,27 @@ UnaccentTransliterator unaccent;
UnicodeString unicodeAccentedString; UnicodeString unicodeAccentedString;
std::string &removeAccents(std::string &text) { std::string &removeAccents(std::string &text) {
printStringInHexadecimal(text.c_str());
unicodeAccentedString = UnicodeString(text.c_str()); unicodeAccentedString = UnicodeString(text.c_str());
printStringInHexadecimal(unicodeAccentedString);
unaccent.transliterate(unicodeAccentedString); unaccent.transliterate(unicodeAccentedString);
text.clear(); text.clear();
unicodeAccentedString.toUTF8String(text); unicodeAccentedString.toUTF8String(text);
return text; return text;
} }
void printStringInHexadecimal(UnicodeString s) {
std::cout << std::showbase << std::hex;
for (int i=0; i<s.length(); i++) {
char c = (char)((s.getTerminatedBuffer())[i]);
if (c & 0x80)
std::cout << (c & 0xff) << " ";
else
std::cout << c << " ";
}
std::cout << std::endl;
}
void printStringInHexadecimal(const char *s) { void printStringInHexadecimal(const char *s) {
std::cout << std::showbase << std::hex; std::cout << std::showbase << std::hex;
for (char const* pc = s; *pc; ++pc) { for (char const* pc = s; *pc; ++pc) {

View File

@ -13,6 +13,8 @@
#include <iostream> #include <iostream>
#include <string> #include <string>
//#define U_CHARSET_IS_UTF8 1
class UnaccentTransliterator : public Transliterator { class UnaccentTransliterator : public Transliterator {
public: public:
@ -96,3 +98,4 @@ private:
std::string &removeAccents(std::string &text); std::string &removeAccents(std::string &text);
void printStringInHexadecimal(const char *s); void printStringInHexadecimal(const char *s);
void printStringInHexadecimal(UnicodeString s);