mirror of
https://github.com/mpv-player/mpv
synced 2025-04-28 14:20:05 +00:00
client API: clarify filename string encoding
Admittedly, the behavior on Windows is not quite straightforward. The
behavior on the other platforms is equivalent to fopen().
Fixes #1585.
(cherry picked from commit a799a4c57f
)
This commit is contained in:
parent
16c7de4aab
commit
b476d21d0a
@ -121,6 +121,27 @@ extern "C" {
|
|||||||
* process (such as ffmpeg OpenSSL support, or the mpv IPC code).
|
* process (such as ffmpeg OpenSSL support, or the mpv IPC code).
|
||||||
* - On memory exhaustion, mpv will kill the process.
|
* - On memory exhaustion, mpv will kill the process.
|
||||||
*
|
*
|
||||||
|
* Encoding of filenames
|
||||||
|
* ---------------------
|
||||||
|
*
|
||||||
|
* mpv uses UTF-8 everywhere.
|
||||||
|
*
|
||||||
|
* On some platforms (like Linux), filenames actually do not have to be UTF-8;
|
||||||
|
* for this reason libmpv supports non-UTF-8 strings. libmpv uses what the
|
||||||
|
* kernel uses and does not recode filenames. At least on Linux, passing a
|
||||||
|
* string to libmpv is like passing a string to the fopen() function.
|
||||||
|
*
|
||||||
|
* On Windows, filenames are always UTF-8, libmpv converts between UTF-8 and
|
||||||
|
* UTF-16 when using win32 API functions. libmpv never uses or accepts
|
||||||
|
* filenames in the local 8 bit encoding. It does not use fopen() either;
|
||||||
|
* it uses _wfopen().
|
||||||
|
*
|
||||||
|
* On OS X, filenames and other strings taken/returned by libmpv can have
|
||||||
|
* inconsistent unicode normalization. This can sometimes lead to problems.
|
||||||
|
* You have to hope for the best.
|
||||||
|
*
|
||||||
|
* Also see the remarks for MPV_FORMAT_STRING.
|
||||||
|
*
|
||||||
* Embedding the video window
|
* Embedding the video window
|
||||||
* --------------------------
|
* --------------------------
|
||||||
*
|
*
|
||||||
@ -502,6 +523,9 @@ typedef enum mpv_format {
|
|||||||
* and even filenames don't necessarily have to be in UTF-8 (at
|
* and even filenames don't necessarily have to be in UTF-8 (at
|
||||||
* least on Linux). If you pass the strings to code that requires
|
* least on Linux). If you pass the strings to code that requires
|
||||||
* valid UTF-8, you have to sanitize it in some way.
|
* valid UTF-8, you have to sanitize it in some way.
|
||||||
|
* On Windows, filenames are always UTF-8, and libmpv converts
|
||||||
|
* between UTF-8 and UTF-16 when using win32 API functions. See
|
||||||
|
* the "Encoding of filenames" section for details.
|
||||||
*
|
*
|
||||||
* Example for reading:
|
* Example for reading:
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user