[Issue 12853] std.encoding EncodingSchemeUtf16Native and EncodingSchemeUtf32Native decode() and SafeDecode() wrong stripping length
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Sat Jun 14 12:05:26 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=12853
Ketmar Dark <ketmar at ketmar.no-ip.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ketmar at ketmar.no-ip.org
--- Comment #1 from Ketmar Dark <ketmar at ketmar.no-ip.org> ---
test case:
import std.encoding;
void testUTF16 () {
version(LittleEndian) {
auto efrom = EncodingScheme.create("utf-16le");
ubyte[6] sample = [154,1, 155,1, 156,1];
}
version(BigEndian) {
auto efrom = EncodingScheme.create("utf-16be");
ubyte[6] sample = [1,154, 1,155, 1,156];
}
const(ubyte)[] ub = cast(const(ubyte)[])sample;
dchar dc = efrom.safeDecode(ub);
assert(dc == 410);
assert(ub.length == 4);
}
void testUTF32 () {
version(LittleEndian) {
auto efrom = EncodingScheme.create("utf-32le");
ubyte[12] sample = [154,1,0,0, 155,1,0,0, 156,1,0,0];
}
version(BigEndian) {
auto efrom = EncodingScheme.create("utf-32be");
ubyte[12] sample = [0,0,1,154, 0,0,1,155, 0,0,1,156];
}
const(ubyte)[] ub = cast(const(ubyte)[])sample;
dchar dc = efrom.safeDecode(ub);
assert(dc == 410);
assert(ub.length == 8);
}
void main () {
testUTF16();
testUTF32();
}
--
More information about the Digitalmars-d-bugs
mailing list