encodeNewlinesAsPercentCrlf function
Implementation
String encodeNewlinesAsPercentCrlf(String input) {
if (input.isEmpty) return input;
final StringBuffer buf = StringBuffer();
int i = 0;
while (i < input.length) {
final int cu = input.codeUnitAt(i);
if (cu == 0x0D /* \r */) {
// Collapse CRLF and CR into CRLF.
if (i + 1 < input.length && input.codeUnitAt(i + 1) == 0x0A /* \n */) {
i += 2;
} else {
i++;
}
buf.write('%0D%0A');
continue;
}
if (cu == 0x0A /* \n */) {
i++;
buf.write('%0D%0A');
continue;
}
buf.writeCharCode(cu);
i++;
}
return buf.toString();
}