diff --git a/JSON/src/Parser.cpp b/JSON/src/Parser.cpp index 96de1b336..54fe97239 100644 --- a/JSON/src/Parser.cpp +++ b/JSON/src/Parser.cpp @@ -38,7 +38,6 @@ #include "Poco/JSON/JSONException.h" #include "Poco/Ascii.h" #include "Poco/Token.h" -#include "Poco/UnicodeConverter.h" #undef min #undef max #include @@ -141,28 +140,28 @@ public: switch(c) { case '"' : - _value += '"'; + c = '"'; break; case '\\' : - _value += '\\'; + c = '\\'; break; case '/' : - _value += '/'; + c = '/'; break; case 'b' : - _value += '\b'; + c = '\b'; break; case 'f' : - _value += '\f'; + c = '\f'; break; case 'n' : - _value += '\n'; + c = '\n'; break; case 'r' : - _value += '\r'; + c = '\r'; break; case 't' : - _value += '\t'; + c = '\t'; break; case 'u' : // Unicode { @@ -197,11 +196,7 @@ public: { throw JSONException("Invalid unicode"); } - //unicode to utf8 - std::string utf8; - UnicodeConverter::toUTF8((const UTF32Char*)&unicode,1,utf8); - _value += utf8; - + c = unicode; break; } default: @@ -209,9 +204,8 @@ public: throw JSONException(format("Invalid escape '%c' character used", (char) c)); } } - }else{ - _value += c; } + _value += c; c = istr.get(); } diff --git a/JSON/testsuite/src/JSONTest.cpp b/JSON/testsuite/src/JSONTest.cpp index f51173232..dbb2521da 100644 --- a/JSON/testsuite/src/JSONTest.cpp +++ b/JSON/testsuite/src/JSONTest.cpp @@ -859,35 +859,6 @@ void JSONTest::testTemplate() } -void JSONTest::testUnicode() -{ - const unsigned char supp[] = {0x61, 0xE1, 0xE9, 0x78, 0xED, 0xF3, 0xFA, 0x0}; - std::string text((const char*) supp); - - std::string json = "{ \"test\" : \"a\u00E1\u00E9x\u00ED\u00F3\u00FA\" }"; - Parser parser; - - Var result; - try - { - DefaultHandler handler; - parser.setHandler(&handler); - parser.parse(json); - result = handler.result(); - } - catch(JSONException& jsone) - { - std::cout << jsone.message() << std::endl; - assert(false); - } - assert(result.type() == typeid(Object::Ptr)); - - Object::Ptr object = result.extract(); - Var test = object->get("test"); - assert(test.convert() == text); -} - - std::string JSONTest::getTestFilesPath(const std::string& type) { std::ostringstream ostr; @@ -947,7 +918,6 @@ CppUnit::Test* JSONTest::suite() CppUnit_addTest(pSuite, JSONTest, testValidJanssonFiles); CppUnit_addTest(pSuite, JSONTest, testInvalidJanssonFiles); CppUnit_addTest(pSuite, JSONTest, testTemplate); - CppUnit_addTest(pSuite, JSONTest, testUnicode); return pSuite; } diff --git a/JSON/testsuite/src/JSONTest.h b/JSON/testsuite/src/JSONTest.h index ac64e2fd5..956181b09 100644 --- a/JSON/testsuite/src/JSONTest.h +++ b/JSON/testsuite/src/JSONTest.h @@ -76,7 +76,6 @@ public: void testInvalidJanssonFiles(); void testTemplate(); void testItunes(); - void testUnicode(); void setUp(); void tearDown();