iT邦幫忙

0

想請問或尋求幫助~截取(採集)數據UTF-8簡轉繁

2019-05-13 05:00:17616 瀏覽

我不知道來這發問是否可行
我也是抱著一些希望

由於我的某個cms網站是採集對岸的數據字段UTF-8簡體
因為簡體總是比較看不順眼
有沒有方法就是讓程式在取得數據字段之後先轉為UTF-8繁體在進入資料庫

如有更好的方式能解決!小額修改費用小弟都能接受

https://coolong124220.nidbox.com/diary/read/8045380
我之前用過 VB 的 VbStrConv
淺水員 iT邦研究生 4 級 ‧ 2019-05-13 22:58:43 檢舉
我有用過 node-opencc ,轉換效果還不錯,只是這是前端轉換
如果要在 PHP 上使用,也已經有人做成 PHP extension 了

2 個回答

0
dragonH
iT邦超人 5 級 ‧ 2019-05-13 11:13:22

Codepen

參考自這個

這個是js版的簡轉繁

基本上重點就這三個function

function JTPYStr(){
	return '万与丑专...';
} 

function FTPYStr() {
	return '萬與醜專...';
}

function Traditionalized(cc) {
	let str = '';
	let ss = JTPYStr();
	let tt = FTPYStr();

	for (let i = 0; i < cc.length; i += 1) {
		if (cc.charCodeAt(i) > 10000 && ss.indexOf(cc.charAt(i)) !== -1 ) {
      str += tt.charAt(ss.indexOf(cc.charAt(i)));
    }	else {
      str += cc.charAt(i);
    } 
	}
	return str;
}

如果找不到相關的套件

你可以改寫成php版的

在寫入資料庫前用這個轉換一下

php應該有類似的方法可以達到charCodeAt()的效果

資料量少的話應該沒什麼效率不好的問題

不過有些字會轉換的不好

ex:
河谷 => 河穀
画面 => 畫麵

0
浩瀚星空
iT邦超人 1 級 ‧ 2019-05-13 13:06:53

一般大多數用的就是字詞法轉換。如 dragonH 給你的那種。
其實原本是還有一組轉換法。不過那招存在並無法將所有的字轉換的問題存在。還是得要搭配字詞轉換。

我自已曾經寫過的是用字詞法的方法,不過再搭配片語轉換。
也就是說,將一些簡體相關的片語如
「默認』->「預設」
「画面」->「畫面」
...等這些先用片語比對的方式轉換後再字對字的轉換。可以降低轉過來的字還是不通順的問題。

正常來說,你用字詞轉換的方式就因該可以應付了。

我要發表回答

立即登入回答