|
|
1
14
注:2014年8月25日编辑修复错误 |
|
|
2
7
更明智的解决方案是使用解码器:
|
|
|
3
5
我认为Rex Kerr的解决方案有两个错误。
请在下面找到我的更正版本:
有趣的是,在实际的20-500字节限制下,它们的性能几乎相同 再次从字节数组创建字符串。 请注意,这两个方法都假设一个有效的utf-8输入,这是在使用Java的getBytes()函数之后的一个有效假设。 |
|
4
4
结果值
|
|
|
5
3
使用UTF-8 CharsetEncoder,通过查找代码结果溢出. |
|
|
6
2
|
|
|
7
2
如前所述,Peter Lawrey解决方案在性能上有很大的劣势(10000次约为3500MSC),Rex Kerr要好得多(10000次约为500msc),但结果并不准确—它的削减量远远超过了需要的量(例如,它没有保留4000字节,而是保留3500字节)。在此附上我的解决方案(~250msc 10000次),假设UTF-8最大长度字符(字节)为4(感谢维基百科):
|
|
|
8
1
您可以将字符串转换为字节,然后仅将这些字节转换回字符串。
|
|
9
0
|
|
|
10
0
这是我的:
|
|
|
11
0
|
|
|
12
0
我改进了Peter Lawrey的解决方案,以精确地处理代理对。此外,我优化的基础上,事实上,最大的字节数每
|
|
|
13
0
|