Skip to content

Commit a187892

Browse files
cola119Fyko
authored andcommitted
src: fix to use replacement character
PR-URL: nodejs#43999 Fixes: nodejs#43962 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Mohammed Keyvanzadeh <[email protected]> Reviewed-By: Darshan Sen <[email protected]> Reviewed-By: LiviaMedeiros <[email protected]> Reviewed-By: Feng Yu <[email protected]>
1 parent 0fb3a56 commit a187892

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/node_i18n.cc

+5-1
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,11 @@ void ConverterObject::Create(const FunctionCallbackInfo<Value>& args) {
425425
nullptr, nullptr, nullptr, &status);
426426
}
427427

428-
new ConverterObject(env, obj, conv, flags);
428+
auto converter = new ConverterObject(env, obj, conv, flags);
429+
size_t sublen = ucnv_getMinCharSize(conv);
430+
std::string sub(sublen, '?');
431+
converter->set_subst_chars(sub.c_str());
432+
429433
args.GetReturnValue().Set(obj);
430434
}
431435

test/parallel/test-whatwg-encoding-custom-textdecoder.js

+7
Original file line numberDiff line numberDiff line change
@@ -199,3 +199,10 @@ if (common.hasIntl) {
199199
const str = decoder.decode(chunk);
200200
assert.strictEqual(str, 'foo\ufffd');
201201
}
202+
203+
if (common.hasIntl) {
204+
const decoder = new TextDecoder('Shift_JIS');
205+
const chunk = new Uint8Array([-1]);
206+
const str = decoder.decode(chunk);
207+
assert.strictEqual(str, '\ufffd');
208+
}

0 commit comments

Comments
 (0)