@@ -161,10 +161,10 @@ fn encode_inner(s: &str, full_url: bool) -> String {
161
161
out. push_char ( ch) ;
162
162
}
163
163
164
- _ => out. push_str ( format ! ( "%{:X }" , ch as uint) . as_slice ( ) )
164
+ _ => out. push_str ( format ! ( "%{:02X }" , ch as uint) . as_slice ( ) )
165
165
}
166
166
} else {
167
- out. push_str ( format ! ( "%{:X }" , ch as uint) . as_slice ( ) ) ;
167
+ out. push_str ( format ! ( "%{:02X }" , ch as uint) . as_slice ( ) ) ;
168
168
}
169
169
}
170
170
}
@@ -1178,6 +1178,8 @@ mod tests {
1178
1178
assert_eq ! ( encode( "@" ) , "@" . to_string( ) ) ;
1179
1179
assert_eq ! ( encode( "[" ) , "[" . to_string( ) ) ;
1180
1180
assert_eq ! ( encode( "]" ) , "]" . to_string( ) ) ;
1181
+ assert_eq ! ( encode( "\0 " ) , "%00" . to_string( ) ) ;
1182
+ assert_eq ! ( encode( "\n " ) , "%0A" . to_string( ) ) ;
1181
1183
}
1182
1184
1183
1185
#[ test]
@@ -1207,6 +1209,8 @@ mod tests {
1207
1209
assert_eq ! ( encode_component( "@" ) , "%40" . to_string( ) ) ;
1208
1210
assert_eq ! ( encode_component( "[" ) , "%5B" . to_string( ) ) ;
1209
1211
assert_eq ! ( encode_component( "]" ) , "%5D" . to_string( ) ) ;
1212
+ assert_eq ! ( encode_component( "\0 " ) , "%00" . to_string( ) ) ;
1213
+ assert_eq ! ( encode_component( "\n " ) , "%0A" . to_string( ) ) ;
1210
1214
}
1211
1215
1212
1216
#[ test]
0 commit comments