[
https://issues.apache.org/jira/browse/MESOS-6817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15770767#comment-15770767
]
Andrew Schwartzmeyer commented on MESOS-6817:
---------------------------------------------
In my opinion, we should explicitly use the {{W}} suffixed Windows APIs at all
times, to guarantee we are given a) the type {{wchar_t*}} and b) data encoded
with UTF-16, as we can easily and correctly convert this to {{std::string}}
encoded with UTF-8 using C++'s {{<codecvt>}} library. We _must not_ use the
non-explicit (non-suffixed) versions of Windows APIs, as we lose type safety
(the point of this issue: they use the type {{TCHAR}} which is variable, it's
either {{char_t}} or {{wchar_t}} depending on {{UNICODE}}, which may or may not
be defined). We _should not_ use the {{A}} suffixed versions as they do not
guarantee an encoding: instead of standard UTF-16 (or UTF-8 which would be
reasonable), they encode with the system's current ANSI code page, leaving us
with an unknown encoding (also, it was deprecated by Unicode; Windows
development guidelines say to use Unicode).
> Audit the use of UNICODE-related code paths
> -------------------------------------------
>
> Key: MESOS-6817
> URL: https://issues.apache.org/jira/browse/MESOS-6817
> Project: Mesos
> Issue Type: Bug
> Components: agent
> Reporter: Alex Clemmer
> Assignee: Alex Clemmer
>
> Currently we are being kind of lazy about when we're using things like
> `TCHAR`. Functions like `os::user` will fail when we do something like
> `std::string` with a `TCHAR` string if the string happens to not be `char`.
> We need to go back to all of these things and audit them so that they don't
> break if we turn `UNICODE` on.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)