需要把svn代碼拉倒本地,使用svn export,使用者密碼什麼的認證後,就會出現下載下傳的檔案清單,最後會以題目這句結尾。
<code>1</code>
<code>svn error:“svn: can’t convert string from ‘utf-8′ to native encoding”</code>
我一直以為這隻是提醒編碼有問題,并未在意,但是看下拉下來的目錄發現很多檔案沒拉下來。換了svn checkout什麼的都不行。
最後才知道,尼瑪,這個錯誤直接就會讓下載下傳停止。
其實但看錯誤基本能知道是編碼的問題,查了一下,果然,就是因為svn庫中包含中文檔案名,本地不支援中文。
在linux上locales用來定義使用者所使用的語言,使用者使用的字元集。
<code>01</code>
<code>$locale</code>
<code>02</code>
<code>lang=en_us</code>
<code>03</code>
<code>lc_ctype=</code><code>"en_us"</code>
<code>04</code>
<code>lc_numeric=</code><code>"en_us"</code>
<code>05</code>
<code>lc_time=</code><code>"en_us"</code>
<code>06</code>
<code>lc_collate=</code><code>"en_us"</code>
<code>07</code>
<code>lc_monetary=</code><code>"en_us"</code>
<code>08</code>
<code>lc_messages=</code><code>"en_us"</code>
<code>09</code>
<code>lc_paper=</code><code>"en_us"</code>
<code>10</code>
<code>lc_name=</code><code>"en_us"</code>
<code>11</code>
<code>lc_address=</code><code>"en_us"</code>
<code>12</code>
<code>lc_telephone=</code><code>"en_us"</code>
<code>13</code>
<code>lc_measurement=</code><code>"en_us"</code>
<code>14</code>
<code>lc_identification=</code><code>"en_us"</code>
<code>15</code>
<code>lc_all=</code>
因為字元集設定utf-8的字元編碼。
解決方案就是開啟utf-8字元集。
<code>export</code> <code>lang=</code><code>"zh_cn.utf-8"</code>
執行後我們就能看到:
<code>$ locale</code>
<code>lc_ctype=</code><code>"zh_cn.utf-8"</code>
<code>lc_numeric=</code><code>"zh_cn.utf-8"</code>
<code>lc_time=</code><code>"zh_cn.utf-8"</code>
<code>lc_collate=</code><code>"zh_cn.utf-8"</code>
<code>lc_monetary=</code><code>"zh_cn.utf-8"</code>
<code>lc_messages=</code><code>"zh_cn.utf-8"</code>
<code>lc_paper=</code><code>"zh_cn.utf-8"</code>
<code>lc_name=</code><code>"zh_cn.utf-8"</code>
<code>lc_address=</code><code>"zh_cn.utf-8"</code>
<code>lc_telephone=</code><code>"zh_cn.utf-8"</code>
<code>lc_measurement=</code><code>"zh_cn.utf-8"</code>
<code>lc_identification=</code><code>"zh_cn.utf-8"</code>
<code>lc_all=zh_cn.utf-8</code>