Blame view

site/jpgraph/docs/chunkhtml/ch08s08.html 13.1 KB
d72ac078   Guillaume   Ajout graphe V1.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
  <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Character encoding</title><link rel="stylesheet" type="text/css" href="manual.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.0"><link rel="home" href="index.html" title="JpGraph Manual"><link rel="up" href="ch08.html" title="Chapter 8. Text and font handling"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Character encoding</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center">Chapter 8. Text and font handling</th><td width="20%" align="right"> </td></tr></table><hr></div><div class="sect1" title="Character encoding"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sec1.character-encoding"></a>Character encoding</h2></div></div></div>
              
              <div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3>
                      <p>If you are not using Japanese, Chinese, Cyrillic , Greek or Hebrew
                          languages then this section can be safely skipped.</p>
                  </div><p>The core problem for the library is that it has no way of knowing in what
                  input encoding the string given to the library is using. Hence it is necessary to,
                  sometime, tell the library what input encoding is being used in order for the
                  library to do necessary character encoding conversion to generate UTF-8 (or UTF-16)
                  as needed to properly render the TTF fonts. The specific encoding options for each
                  major supported locale are explained below.</p>
              <p>By default all JpGraph library files and examples are encoded in UTF-8</p>
              <p>All defines mentioned below can be found in the file
                      "<code class="filename">jpgraph_ttf.inc.php</code>" </p>
              <div class="sect2" title="Japanese encoding options"><div class="titlepage"><div><div><h3 class="title"><a name="id2500277"></a>Japanese encoding options</h3></div></div></div>
                  
                  <p>There is only one possible option that can be specified.</p>
                  <p>
                      </p><div class="table"><a name="id2500290"></a><p class="title"><b>Table 8.4. Japanese encoding options</b></p><div class="table-contents">
                          
                          <table summary="Japanese encoding options" border="1"><colgroup><col class="c1"><col class="c2"><col class="c3"></colgroup><thead><tr><th>Symbolic define</th><th>Possible values </th><th>Description</th></tr></thead><tbody><tr><td><code class="code">ASSUME_EUCJP_ENCODING</code></td><td>true/false</td><td>Assumes that Japanese text have been entered in EUC-JP
                                          encoding. If this define is true then conversion from EUC-JP
                                          to UTF8 is done automatically in the library using the
                                              <code class="code">mbstring</code> module in PHP. Note that the
                                          multibyte extension in PHP is not normally enabled.</td></tr></tbody></table>
                      </div></div><p><br class="table-break">
                  </p>
                  <p>Otherwise it is assumed that the input characters are encoded in UTF-8.
                      Remember that to show the Japanese character sets (Kanji, Hiragana and Katakana)
                      one of the Japanese font families (<code class="code">FF_MINCHO</code>,
                          <code class="code">FF_PMINCHO</code>, <code class="code">FF_GOTHIC</code> or <code class="code">FF_PGOTHIC</code>)
                      must be specified. </p>
                  <p>An example of using Japanese locale together with Windrose plots can be seen
                      in <a class="xref" href="ch21s03.html#sec.windrose-locale-compass" title="Localizing the default names for the compass directions">Localizing the default names for the compass directions</a>.</p>
              </div>
              <div class="sect2" title="Chinese encoding options"><div class="titlepage"><div><div><h3 class="title"><a name="id2500408"></a>Chinese encoding options</h3></div></div></div>
                  
                  <p>There are no specific settings that control the encoding. The following rules
                      are used depending on the font is specified. </p>
                  <p>
                      </p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
                              <p>If the font is specified as <code class="code">FF_SIMSUN</code> the built-in
                                  library conversion from GB2312 to UTF-8 will be used. This
                                  translation table is stored in the file
                                      <code class="filename">jpgraph_gb2312.inc.php</code>.</p>
                          </li><li class="listitem">
                              <p>If the font is specified as <code class="code">FF_CHINESE</code> then no
                                  conversion is made since it is assumed that the input character
                                  string is already in UTF-8 This only has the effect of changing the
                                  font to the default Chinese font family.</p>
                          </li><li class="listitem">
                              <p>If the font is specified as <code class="code">FF_BIG5</code> then it is
                                  assumed that the input character string is encoded in BIG5 and the
                                  internal translation to UTF-8 is done by the <code class="code">iconv()</code>
                                  function. This means that PHP must be built with
                                      <code class="code">iconv()</code> support. By default this is not compiled
                                  into PHP (needs the "<code class="code">--width-iconv</code>" when configured).
                                  For more on building PHP with the right options see <a class="xref" href="api.html" title="Appendix I. Compiling PHP">Appendix I. <i>Compiling PHP</i></a>. If this method is not present
                                  the library will generate the following an error message.</p>
                          </li></ol></div><p>
                  </p>
                  <p>An example of using Chinese encoding with Windrose plots can be seen in <a class="xref" href="ch21s03.html#fig.windrose_ex6.1" title="Figure 21.11. Using chinese fonts (windrose_ex6.1.php)">Figure 21.11. Using chinese fonts <code class="uri"><a class="uri" href="example_src/windrose_ex6.1.html" target="_top">(<code class="filename">windrose_ex6.1.php</code>)</a></code> </a>
                  </p>
              </div>
              <div class="sect2" title="Cyrillic encoding options"><div class="titlepage"><div><div><h3 class="title"><a name="id2500502"></a>Cyrillic encoding options</h3></div></div></div>
                  
                  <p>In order to do proper translation to unicode from cyrillic the
                          <code class="code">LANGUAGE_CYRILLIC</code> define should be set to true. If you are
                      running the library in multiuser environment it might be necessary to also
                      adjust the <code class="code">LANGUGAE_CHARSET</code> define as described below.</p>
                  <p>
                      </p><div class="table"><a name="id2500523"></a><p class="title"><b>Table 8.5. Cyrillic encoding options</b></p><div class="table-contents">
                          
                          <table summary="Cyrillic encoding options" border="1"><colgroup><col class="c1"><col class="c2"><col class="c3"></colgroup><thead><tr><th>Symbolic define</th><th>Possible values </th><th>Description</th></tr></thead><tbody><tr><td><code class="code">LANGUAGE_CYRILLIC</code></td><td>true/false</td><td>
                                          <p>Special unicode cyrillic language support</p>
                                      </td></tr><tr><td><code class="code">CYRILLIC_FROM_WINDOWS</code></td><td>true/false</td><td>
                                          <p>If you are setting this config to true the conversion
                                              will assume that the input text is encoded in windows
                                              1251, if false it will assume koi8-r</p>
                                      </td></tr><tr><td><code class="code">LANGUAGE_CHARSET</code></td><td>string</td><td>
                                          <p>This constant is used to auto-detect whether cyrillic
                                              conversion is really necessary if enabled. Just specify
                                              the encoding used, e.g. 'windows-1251', with a variable
                                              containing the input character encoding string of your
                                              application calling JpGraph. </p>
                                          <p>A typical such string would be 'UTF-8' or 'utf-8'. The
                                              comparison is case-insensitive. If this charset is not a
                                              'koi8-r' or 'windows-1251' derivate then no conversion
                                              is done. This constant can be very important in
                                              multi-user multi-language environments where a cyrillic
                                              conversion could be needed for some cyrillic people and
                                              resulting in just erroneous conversions for non cyrillic
                                              language based people. </p>
                                          <p>Example: In the free project management software
                                              dotproject.net <code class="code">$locale_char_set</code> is
                                              dynamically set by the language environment the user has
                                              chosen. </p>
                                          <p>Usage: <code class="code">define('LANGUAGE_CHARSET',
                                                  $locale_char_set);</code> where
                                                  <code class="code">$locale_char_set</code> is a GLOBAL (string)
                                              variable from the application including JpGraph.</p>
                                      </td></tr></tbody></table>
                      </div></div><p><br class="table-break">
                  </p>
              </div>
              <div class="sect2" title="Hebrew encoding options"><div class="titlepage"><div><div><h3 class="title"><a name="id2500687"></a>Hebrew encoding options</h3></div></div></div>
                  
                  <p>There are no user adjustable settings. The conversion is made from iso to
                      unicode with the help of the PHP method "<code class="code">hebrev()</code>" which is used to
                      convert logical Hebrew text to visual text. This conversion is done
                      automatically when the font is one of <code class="code">FF_DAVID</code>,
                          <code class="code">FF_MIRIAM</code> or <code class="code">FF_AHRON</code></p>
              </div>
              <div class="sect2" title="Greek encoding options"><div class="titlepage"><div><div><h3 class="title"><a name="id2500718"></a>Greek encoding options</h3></div></div></div>
                  
                  <p>In order to do proper translation to unicode from greek the
                          <code class="code">LANGUAGE_GREEK</code> define should be specified to true.</p>
                  <p>
                      </p><div class="table"><a name="id2500733"></a><p class="title"><b>Table 8.6. Greek encoding options</b></p><div class="table-contents">
                          
                          <table summary="Greek encoding options" border="1"><colgroup><col class="c1"><col class="c2"><col class="c3"></colgroup><thead><tr><th>Symbolic define</th><th>Possible values </th><th>Description</th></tr></thead><tbody><tr><td><code class="code">LANGUAGE_GREEK</code></td><td>true/false</td><td>Special unicode greek language support</td></tr><tr><td><code class="code">GREEK_FROM_WINDOWS</code></td><td>true/false</td><td>If you are setting this define to true the conversion of
                                          greek characters will assume that the input text is windows
                                          1251</td></tr></tbody></table>
                      </div></div><p><br class="table-break">
                  </p>
              </div>
          </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"><a accesskey="u" href="ch08.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>