From d131bae53d1ffc85595bd6c48abcbe990ba047f5 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Wed, 16 Jun 2004 00:20:54 +0000 Subject: [PATCH] New section on file name encodings. 2004-06-15 Federico Mena Quintero * glib/tmpl/conversions.sgml: New section on file name encodings. * glib/file-name-encodings.sxd: New diagram of how file name encodings work. * glib/file-name-encodings.png: Same as above, for inclusion in the generated docs. * glib/Makefile.am (HTML_IMAGES): Add file-name-encodings.png. (EXTRA_DIST): Add the new images. * glib/running.sgml: Add ids to the corresponding paragraphs that describe G_FILENAME_ENCODING and G_BROKEN_FILENAMES, to be able to reference them from elsewhere. --- docs/reference/ChangeLog | 17 +++ docs/reference/glib/Makefile.am | 3 + docs/reference/glib/file-name-encodings.png | Bin 0 -> 30639 bytes docs/reference/glib/file-name-encodings.sxd | Bin 0 -> 7006 bytes docs/reference/glib/running.sgml | 4 +- docs/reference/glib/tmpl/conversions.sgml | 155 ++++++++++++++++++++++++++++ 6 files changed, 177 insertions(+), 2 deletions(-) create mode 100644 docs/reference/glib/file-name-encodings.png create mode 100644 docs/reference/glib/file-name-encodings.sxd diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog index f3ef0a7..176a324 100644 --- a/docs/reference/ChangeLog +++ b/docs/reference/ChangeLog @@ -1,3 +1,20 @@ +2004-06-15 Federico Mena Quintero + + * glib/tmpl/conversions.sgml: New section on file name encodings. + + * glib/file-name-encodings.sxd: New diagram of how file name + encodings work. + + * glib/file-name-encodings.png: Same as above, for inclusion in + the generated docs. + + * glib/Makefile.am (HTML_IMAGES): Add file-name-encodings.png. + (EXTRA_DIST): Add the new images. + + * glib/running.sgml: Add ids to the corresponding paragraphs that + describe G_FILENAME_ENCODING and G_BROKEN_FILENAMES, to be able to + reference them from elsewhere. + Thu Jun 10 21:29:55 2004 Matthias Clasen * glib/tmpl/modules.sgml: Add an example for GModule diff --git a/docs/reference/glib/Makefile.am b/docs/reference/glib/Makefile.am index fb97bff..b2b82bf 100644 --- a/docs/reference/glib/Makefile.am +++ b/docs/reference/glib/Makefile.am @@ -39,6 +39,7 @@ MKDB_OPTIONS=--sgml-mode --output-format=xml --ignore-files=trio # Images to copy into HTML directory HTML_IMAGES = \ + file-name-encodings.png \ mainloop-states.gif # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE) @@ -60,6 +61,8 @@ include $(top_srcdir)/gtk-doc.make # Other files to distribute EXTRA_DIST += \ + file-name-encodings.png \ + file-name-encodings.sxd \ mainloop-states.fig \ mainloop-states.png \ mainloop-states.eps \ diff --git a/docs/reference/glib/file-name-encodings.png b/docs/reference/glib/file-name-encodings.png new file mode 100644 index 0000000000000000000000000000000000000000..035c9ee255bff49dc4255ef7920c7183fe9d226c GIT binary patch literal 30639 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 literal 0 HcmV?d00001 diff --git a/docs/reference/glib/file-name-encodings.sxd b/docs/reference/glib/file-name-encodings.sxd new file mode 100644 index 0000000000000000000000000000000000000000..46750dc17c54ed6462f960f00ce354397a62729b GIT binary patch literal 7006 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 D*f>u9 literal 0 HcmV?d00001 diff --git a/docs/reference/glib/running.sgml b/docs/reference/glib/running.sgml index 5b250b0..f86fdf9 100644 --- a/docs/reference/glib/running.sgml +++ b/docs/reference/glib/running.sgml @@ -23,7 +23,7 @@ GLib inspects a few of environment variables in addition to standard variables like LANG, PATH or HOME. - + <envar>G_FILENAME_ENCODING</envar> @@ -34,7 +34,7 @@ variables like LANG, PATH or HOME. - + <envar>G_BROKEN_FILENAMES</envar> diff --git a/docs/reference/glib/tmpl/conversions.sgml b/docs/reference/glib/tmpl/conversions.sgml index 4429fd9..aa14611 100644 --- a/docs/reference/glib/tmpl/conversions.sgml +++ b/docs/reference/glib/tmpl/conversions.sgml @@ -9,6 +9,153 @@ convert strings between different character sets using iconv() + + File Name Encodings + + + Historically, Unix has not had a defined encoding for file + names: a file name is valid as long as it does not have path + separators in it ("/"). However, displaying file names may + require conversion: from the character set in which they were + created, to the character set in which the application + operates. Consider the Spanish file name + "Presentación.sxi". If the + application which created it uses ISO-8859-1 for its encoding, + then the actual file name on disk would look like this: + + + +Character: P r e s e n t a c i ó n . s x i +Hex code: 50 72 65 73 65 6e 74 61 63 69 f3 6e 2e 73 78 69 + + + + However, if the application use UTF-8, the actual file name on + disk would look like this: + + + +Character: P r e s e n t a c i ó n . s x i +Hex code: 50 72 65 73 65 6e 74 61 63 69 c3 b3 6e 2e 73 78 69 + + + + Glib uses UTF-8 for its strings, and GUI toolkits like GTK+ + that use Glib do the same thing. If you get a file name from + the file system, for example, from + readdir(3) or from g_dir_read_name(), + and you wish to display the file name to the user, you + will need to convert it into UTF-8. The + opposite case is when the user types the name of a file he + wishes to save: the toolkit will give you that string in + UTF-8 encoding, and you will need to convert it to the + character set used for file names before you can create the + file with open(2) or + fopen(3). + + + + By default, Glib assumes that file names on disk are in UTF-8 + encoding. This is a valid assumption for file systems which + were created relatively recently: most applications use UTF-8 + encoding for their strings, and that is also what they use for + the file names they create. However, older file systems may + still contain file names created in "older" encodings, such as + ISO-8859-1. In this case, for compatibility reasons, you may + want to instruct Glib to use that particular encoding for file + names rather than UTF-8. You can do this by specifying the + encoding for file names in the G_FILENAME_ENCODING + environment variable. For example, if your installation uses + ISO-8859-1 for file names, you can put this in your + ~/.profile: + + + +export G_FILENAME_ENCODING=ISO-8859-1 + + + + Glib provides the functions g_filename_to_utf8() + and g_filename_from_utf8() + to perform the necessary conversions. These functions convert + file names from the encoding specified in + G_FILENAME_ENCODING to UTF-8 and vice-versa. + illustrates how + these functions are used to convert between UTF-8 and the + encoding for file names in the file system. + + +
+ Conversion between File Name Encodings + +
+ + + Checklist for Application Writers + + + This section is a practical summary of the detailed + description above. You can use this as a checklist of + things to do to make sure your applications process file + name encodings correctly. + + + + + + If you get a file name from the file system from a + function such as readdir(3) or + gtk_file_chooser_get_filename(), + you do not need to do any conversion to pass that + file name to functions like open(2), + rename(2), or + fopen(3) — those are "raw" + file names which the file system understands. + + + + + + If you need to display a file name, convert it to UTF-8 + first by using g_filename_to_utf8(). + If conversion fails, display a string like + "Unknown file name". Do + not convert this string back into the + encoding used for file names if you wish to pass it to + the file system; use the original file name instead. + For example, the document window of a word processor + could display "Unknown file name" in its title bar but + still let the user save the file, as it would keep the + raw file name internally. This can happen if the user + has not set the G_FILENAME_ENCODING + environment variable even though he has files whose + names are not encoded in UTF-8. + + + + + + If your user interface lets the user type a file name + for saving or renaming, convert it to the encoding used + for file names in the file system by using g_filename_from_utf8(). + Pass the converted file name to functions like + fopen(3). If conversion fails, ask + the user to enter a different file name. This can + happen if the user types Japanese characters when + G_FILENAME_ENCODING is set to + ISO-8859-1, for example. + + + + +
+ @@ -204,3 +351,11 @@ is not supported. @Returns: + + + -- 2.7.4