phpRawUrlEncode function
PHP's rawurlencode: every byte of the UTF-8 encoding except
A-Z a-z 0-9 - _ . ~ becomes %XX (upper case).
Implementation
String phpRawUrlEncode(String value) {
final out = StringBuffer();
for (final byte in utf8.encode(value)) {
final unreserved =
(byte >= 0x41 && byte <= 0x5A) ||
(byte >= 0x61 && byte <= 0x7A) ||
(byte >= 0x30 && byte <= 0x39) ||
byte == 0x2D ||
byte == 0x2E ||
byte == 0x5F ||
byte == 0x7E;
if (unreserved) {
out.writeCharCode(byte);
} else {
out
..write('%')
..write(byte.toRadixString(16).toUpperCase().padLeft(2, '0'));
}
}
return out.toString();
}