Skip empty strings in ToUtf(8|16).

We've observed a crash on Windows when the strings are empty, skipping the conversion seems reasonable in that case.

Bug: None
Change-Id: I3acf3060a88741fb750d7a0cc02e9422713c59cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/147380
Commit-Queue: Noah Richards <noahric@chromium.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28709}
diff --git a/rtc_base/string_utils_unittest.cc b/rtc_base/string_utils_unittest.cc
index b4396f1..2fa1f22 100644
--- a/rtc_base/string_utils_unittest.cc
+++ b/rtc_base/string_utils_unittest.cc
@@ -28,4 +28,15 @@
   EXPECT_EQ(ToHex(-20), "ffffffec");
 }
 
+#if defined(WEBRTC_WIN)
+
+TEST(string_toutf, Empty) {
+  char empty_string[] = "";
+  EXPECT_TRUE(ToUtf16(empty_string, 0u).empty());
+  wchar_t empty_wchar[] = L"";
+  EXPECT_TRUE(ToUtf8(empty_wchar, 0u).empty());
+}
+
+#endif  // WEBRTC_WIN
+
 }  // namespace rtc