Skip to content

Commit 39bd06b

Browse files
committed
Merge pull request #531 from works-mobile/0.11-devel
Fixed URI encode_char bug #362
2 parents f45fdb3 + a65404e commit 39bd06b

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

boost/network/uri/encode.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ void encode_char(CharT in, OutputIterator &out) {
115115
break;
116116
default:
117117
out++ = '%';
118-
out++ = hex_to_letter(in >> 4);
118+
out++ = hex_to_letter((in >> 4) & 0x0f);
119119
out++ = hex_to_letter(in & 0x0f);
120120
;
121121
}

libs/network/test/uri/uri_encoding_test.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,21 @@ BOOST_AUTO_TEST_CASE(decoding_test) {
2929
uri::decode(encoded, std::back_inserter(instance));
3030
BOOST_CHECK_EQUAL(instance, unencoded);
3131
}
32+
33+
BOOST_AUTO_TEST_CASE(encoding_multibyte_test) {
34+
const std::string unencoded("한글 테스트");
35+
const std::string encoded("%ED%95%9C%EA%B8%80%20%ED%85%8C%EC%8A%A4%ED%8A%B8");
36+
37+
std::string instance;
38+
uri::encode(unencoded, std::back_inserter(instance));
39+
BOOST_CHECK_EQUAL(instance, encoded);
40+
}
41+
42+
BOOST_AUTO_TEST_CASE(decoding_multibyte_test) {
43+
const std::string unencoded("한글 테스트");
44+
const std::string encoded("%ED%95%9C%EA%B8%80%20%ED%85%8C%EC%8A%A4%ED%8A%B8");
45+
46+
std::string instance;
47+
uri::decode(encoded, std::back_inserter(instance));
48+
BOOST_CHECK_EQUAL(instance, unencoded);
49+
}

0 commit comments

Comments
 (0)