diff --git a/src/node_os.cc b/src/node_os.cc index e0ea7e7b828518..c9eef808b0addf 100644 --- a/src/node_os.cc +++ b/src/node_os.cc @@ -257,15 +257,13 @@ static void GetInterfaceAddresses(const FunctionCallbackInfo& args) { for (i = 0; i < count; i++) { const char* const raw_name = interfaces[i].name; - // On Windows, the interface name is the UTF8-encoded friendly name and may - // contain non-ASCII characters. On UNIX, it's just a binary string with - // no particular encoding but we treat it as a one-byte Latin-1 string. -#ifdef _WIN32 + // Use UTF-8 on both Windows and Unixes (While it may be true that UNIX + // systems are somewhat encoding-agnostic here, it’s more than reasonable + // to assume UTF8 as the default as well. It’s what people will expect if + // they name the interface from any input that uses UTF-8, which should be + // the most frequent case by far these days.) name = String::NewFromUtf8(env->isolate(), raw_name, v8::NewStringType::kNormal).ToLocalChecked(); -#else - name = OneByteString(env->isolate(), raw_name); -#endif if (ret->Has(env->context(), name).FromJust()) { ifarr = Local::Cast(ret->Get(name));