aboutsummaryrefslogtreecommitdiffstats
path: root/tshark.c
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2020-06-24 16:02:39 -0700
committerGerald Combs <gerald@wireshark.org>2020-07-06 16:20:25 +0000
commit4dc3114c050ac2fb6da2b19103ce4995f6d91561 (patch)
tree08c7406a69bd8bc383f205cd5789556abcf6bdb4 /tshark.c
parent0d7d7fe3c6295cd40e3c96407f7208ef19b43b61 (diff)
Windows: Set our locale to ".UTF-8".
In each of our executables we were calling "setlocale(LC_ALL, "")" at startup. This told Windows that output was encoded using the current system code page. Unless the code page was 65001 (UTF-8), this was a lie. We write UTF-8 to stdout and stderr, so call "setlocale(LC_ALL, ".UTF-8)" at startup on Windows. This lets the CRT translate our output correctly in more cases. Clarify and expand the OUTPUT section in the tshark man page. Bug: 16649 Change-Id: If93231fe5b332c292946c7f8e5e813e2f543e799 Reviewed-on: https://code.wireshark.org/review/37560 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
Diffstat (limited to 'tshark.c')
-rw-r--r--tshark.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/tshark.c b/tshark.c
index f0d73c579e..0c7da3f3e2 100644
--- a/tshark.c
+++ b/tshark.c
@@ -764,10 +764,17 @@ main(int argc, char *argv[])
static const char optstring[] = OPTSTRING;
- tshark_debug("tshark started with %d args", argc);
-
- /* Set the C-language locale to the native environment. */
+ /*
+ * Set the C-language locale to the native environment and set the
+ * code page to UTF-8 on Windows.
+ */
+#ifdef _WIN32
+ setlocale(LC_ALL, ".UTF-8");
+#else
setlocale(LC_ALL, "");
+#endif
+
+ tshark_debug("tshark started with %d args", argc);
cmdarg_err_init(failure_warning_message, failure_message_cont);