顯示具有 中文 標籤的文章。 顯示所有文章
顯示具有 中文 標籤的文章。 顯示所有文章

星期六, 12月 22, 2012

另一個Owncloud中文亂碼問題

另一個Owncloud中文亂碼問題,坦白說應該是另一個IE中文亂碼問題。原因瀏覽器下載檔案時檔名是參照伺服器送出的header('Content-Disposition: attachment; filename=)這個標頭,而IE在這裡的檔名竟然不支援utf-8而且到了IE9都還沒修正。為了接濟這些可憐的IE只好修改 apps/files/download.php如下
(owncloud 4.5.6版已避開了這個錯誤,不需要進行以下修改)

星期三, 12月 19, 2012

Owncloud中文目錄包裹下載

Owncloud提供私有雲端儲存環境的自由軟體解決方案,目前4.5版中文支援已經很完整,但是早期ZIP壓縮檔內的檔名不支援utf-8,所以使用ZIP格式下載整個目錄或多個檔案時大部分解縮軟體無法正確處理utf-8編碼的檔名,造成檔案目錄有中文亂碼問題。修改lib/files.php如下,可以將壓縮檔中的檔名改為以big-5編碼。


星期五, 5月 14, 2010

升級Dataface到1.2.4

今天升級Dataface到1.2.4版,出乎意料的順利
解壓縮後將寫入權限設給 Dataface/templates_c/ 目錄
就一切正常,繁體中文的語系也不用自己新增,
看來使用Dataface的人也慢慢多了。

http://xataface.com/admin.php?-action=home

星期三, 1月 20, 2010

解決wvText轉出中文變成星號(*)問題

wvText是wvWare套件中的一個script程式,用來將MS Word檔案轉成普通文字檔。
執行wvText時會先呼叫wvhtml將MS Word檔案轉成html格式,再依優先順序呼叫
elinks、links、lynx、wv或Ware -x wvText.xml
去除html檔中的html標籤

如果電腦中沒有裝elinks,wvText就會改用links,而links如果不加-codepage參數,中文就會轉成星號(*)
而elinks不會有這個問題,而且依wvText的說明elinks轉出的格式也最完整。

所以如果wvText轉出的中文字如果都是星號(*)的話,裝上elinks應該可以解決。

星期三, 1月 13, 2010

xatafave自訂欄位寬度

xataface目前(1.2.2版)為止不能用調整參數的方式自訂清單檢視的欄位寬度,比較方便的替代方案是增加widget:label的字元來增加欄位寬度,但是中文因為每個字元都可以斷行的關係,並不能利用增加欄名的中文字元來增加欄位寬度。

改善這個問題可以設定 white-space: nowrap; 這個css參數強迫不要斷行。
通常我會希望全網站都套用這個設定,所以直接修改 xataface/plone.css
增加

thead {
white-space: nowrap;
}

星期三, 12月 16, 2009

Xataface中文亂碼問題

Xataface 1.2 版開始已有簡體中文介面,如果資料庫正確儲存為utf8時Xataface也可以正常顯示,但是預設語系還是ISO-8859-1,所以輸入中文時都會被轉碼為&#999999格式存入資料庫。
解決方式為在conf.ini最上方設定
default_oe=UTf-8
default_ie=UTF-8
如果使用Xataface建置的應用系統很多,不想重復設定,可直接修改Xataface/Dataface/Application.php中,將
if ( !isset($this->_conf['default_ie']) ) $this->_conf['default_ie'] = 'ISO-8859-1';
if ( !isset($this->_conf['default_oe'])) $this->_conf['default_oe'] = 'ISO-8859-1';
ISO-8859-1改為UTF-8,所有應用系統都會以UTF-8為編碼方式。

星期五, 1月 16, 2009

在GNU/Linux連MS SQL資料庫

1.安裝 tdsodbc、freetds-bin、libsybdb5、freetds-common、unixodbc

2.執行 TDSVER=8.0 tsql -H ser.ver.ip.1 -p 1433 -U username -P password (測試freetds,OK 出現 "1>" )

3.編輯 /etc/freetds.conf
[server_ts]
host = ser.ver.ip.1
port = 1433
tds version = 8.0
client charset = UTF-8

4.執行 tsql -S server_ts -U username -P password (測試 freetds.conf 設定)

5.編輯 /etc/odbcinst.ini (預設即可,記住[ms_sql]標簽)
[ms_sql]
Description = TDS driver (Sybase/MS SQL)
Driver = /usr/lib/odbc/libtdsodbc.so
Setup = /usr/lib/odbc/libtdsS.so
CPTimeout =
CPReuse =

6.編輯 /etc/odbc.ini
[DSNname]
Description = test database
Driver = ms_sql -------------------------->odbcinst.ini中的標簽
Servername = server_ts ------------------>freetds.conf中的標簽
;Server = ser.ver.ip.1 ---------------->如不使用Servername就要使用Server和Port但中文有問題,在這指定client charset 沒有用
;Port = 1433
Database = databasename

7.執行 isql -v DSNname username password (測試odbc.ini設定,出現 "sql>" 即可)

8.如在odbc.ini中使用Servername方式不行而使用Server加Port方式可以,表示isql找不到freetds.conf
可能要執行 ln -s /etc/freetds.conf /usr/local/etc/freetds.conf


補充64位元版本
/etc/odbcinst.ini內改為
Driver64=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup64=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

星期二, 2月 19, 2008

在zhcon環境中操作utf8檔案系統

zhcon是支援CJK(中日韓)的虛擬終端,目前版本(0.2.6)可以在執行時加入--utf8參數,將utf8編碼的檔案系統轉為big5內碼顯示,但是此參數卻會造成無法輸入的情況。
為了在zhcon環境中操作utf8檔案系統,可以將以下代碼存為zhcon.sh,
啟動zhcon後執行 . zhcon.sh
即可以使用bcd bls等指令在zhcon環境中操作utf8檔案系統

-------------------------------------------------------------------------------------------------------------------------------------
#!/bin/sh
bls ()
{
'ls' `echo $*|iconv -f big5 -t utf8`|iconv -f utf8 -t big5
}
bcat ()
{
'cat' `echo $*|iconv -f big5 -t utf8`|iconv -f utf8 -t big5
}
bmore ()
{
'more' `echo $*|iconv -f big5 -t utf8`|iconv -f utf8 -t big5
}
bcd ()
{
'cd' `echo $*|iconv -f big5 -t utf8`
}
bcp ()
{
'cp' `echo $*|iconv -f big5 -t utf8`
}
brm ()
{
'rm' `echo $*|iconv -f big5 -t utf8`
}
bmkdir ()
{
'mkdir' `echo $*|iconv -f big5 -t utf8`
}

星期三, 1月 10, 2007

C_950.nls 修改方式

各種big5對unicode碼表
http://www.moztw.org/docs/big5/

從c_950.nls讀出對應表
od -v -w2 -A n -t x2 -j 1056 -N 64511 c_951.nls | awk 'BEGIN {a=0x8100} {printf "0x%X\t", a++; print "U+" toupper($1)}' | grep -v 'U+003F' > cp951.txt
http://me.abelcheung.org/diary/general/computer/software/


nls檔案結構
http://shlimazl.nm.ru/eng/nls.htm(碼位不準)

手動修改方式例
964F(big5e) 5803(utf8)
以16位元方式計算
(964F-7EF0)*2=2EBE -> 在檔案2EBE的位址輸入 0358 (utf8碼)
(5803+8011)*2=1B028 -> 在檔案1B028的位址輸入 4F96 (big5e碼)

公式-用16進位計算
utf8碼位址=(big5碼-7EF0)*2
big5碼位址=(utf8碼+8011)*2


/*-----整個檔案轉換-----*/
#!/usr/bin/perl
$file_b5u8 = 'big5e.txt'; # big5e to utf8 table file
$file_nls = 'c_950-.nls'; # c_950.nls file

open(FHb5u8, $file_b5u8) || die "can't update somewhere: $!";
open(FHnls, "+<$file_nls") || die "can't update somewhere: $!"; while (<FHb5u8>) {
my @array = split(' ',$_);
next if (substr($array[1],0,2) ne 'U+');
my $b5s = $array[0];
my $u8s = '0x'.substr($array[1],2);
my $b5s1 = '0x'.substr($b5s,2,2);
my $b5s2 = '0x'.substr($b5s,4,2);
my $u8s1 = '0x'.substr($u8s,2,2);
my $u8s2 = '0x'.substr($u8s,4,2);
my $b5as = (hex($b5s) - hex('0x7EF0'))*2;
my $u8as = (hex($u8s) + hex('0x8011'))*2;
print "$b5s,$u8s:$b5as->$u8s2$u8s1,$u8as->$b5s2$b5s1\n";
seek(FHnls, $b5as, 0);
printf FHnls "%c%c", hex $u8s2, hex $u8s1;
seek(FHnls, $u8as, 0);
printf FHnls "%c%c", hex $b5s2, hex $b5s1;
}

close FHb5u8;
close FHnls;

星期一, 10月 02, 2006

pollxt 中文化

pollxt 是加強版的 joomla 票選元件,未來可能納入標準元件中。
pollxt 已支援語言檔,可以翻譯 language/english.php 後另存為 traditional_chinese.php即可。

pollxt 1.22.13 投票時如果提供文字方塊輸入,存入資料庫會變成亂碼(html格式)。
處理方式:
修改 administrator/components/com_pollxt/pollxt.inc.php
$val = htmlentities($xtVal[$v]); 為
$val = htmlspecialchars($xtVal[$v]);

參考資料:
jommla擴充套件中文化指引
htmlspecialchars函式說明