=?UTF-8?B?5ZiX6Kmm6Kej5rG6R2VkaXTnmoTnt6jnorzllY/poYzigJTigJTlop7liqBnZWRpdF9kbw==?= =?UTF-8?B?Y3VtZW50X3NldF9lbmNvZGluZ+WHveaVuA==?=
- From: Ma Xiaojun <damage3025 gmail com>
- To: gnome-cn-list <gnome-cn-list gnome org>, gzlug googlegroups com
- Subject: 嘗試解決Gedit的編碼問題——增加gedit_document_set_encoding函數
- Date: Sun, 11 Nov 2012 15:49:07 -0600
補丁在這裏:
https://bugzilla.gnome.org/attachment.cgi?id=228727&action=diff
Gedit編碼問題的困難在於,如果直接在Gedit的C代碼層面解決,涉及的代碼會比較多,上游不願意做,其他人提交補丁也不易被上游接受。
之前我嘗試過通過寫插件解決,但是我發現Gedit 3的GeditDocument的encoding屬性是只讀的,就放下了。
最近我發現有個Gedit 2的插件,能在文檔打開後設置編碼
http://code.google.com/p/gencodingconverter/
看了下代碼發現是通過直接操作buffer的方式來解決的(我之前怎麼沒想到呢)
不過這種方法至少在Gedit 3還是有個小問題的,比如說一個GBK的文件被識別成了ISO-8859-15,就算我們把buffer內容轉換成了正確的中文(buffer永遠是UTF-8的),保存的時候Gedit還是會記住ISO-8859-15並且問用戶是否換編碼保存,不友好。
所以我還是花了一些時間做了這個encoding屬性的setter,轉換buffer內容的事情在這個setter裏面做了,這樣相關的插件做起來就簡單多了。
請點評。
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]