2013-08-19 81 views
1

我想要使用three.js TextGeometry來動畫unicode文本。無法使用Unicode字體來處理three.js TextGeometry

文字爲: 「聖艾蒂安篤山」 它出現在畫布作爲 「聖 - ?? tienne篤山」

請參閱本image

代碼:

var text3d = new THREE.TextGeometry(theText, { 
    size: 80, 
    height: 20, 
    curveSegments: 0, 
    font: "ubuntu" 
}); 

這是我的網頁的鏈接:test_canvas

+0

程序的最後一行應該調用'animate()',而不是'render()'。 – WestLangley

+0

@WestLangley我從其他函數調用渲染。對不起,我沒有在那裏提及。但即使我稱動畫unicode字符爲「??」。請參考此[圖片](https://dl.dropboxusercontent.com/u/50158740/unicode_error.png) – wakeup

+0

對不起,我不知道解決方案,但我建議你重寫你的問題,以清楚問題是什麼。說它不「工作」不是很具描述性。 – WestLangley

回答

2

我認爲這是一個簡單的編碼問題。網頁是UTF-8,但是你已經粘貼了用其他字符集編碼的文本(可能來自Windows機器的cp1252)。你可以通過查看你的網頁的來源來看到這一點 - 這裏的É字符也混亂了。

爲了便於比較,這裏是simplified version of your page,文本正確編碼。

並非所有的JS字體都能處理UTF-8字符。例如,Three.js的默認Helvetiker會將É作爲問號。

+0

它工作:)謝謝你,你是救星:) – wakeup

+0

事實證明,這是與Dropbox的問題。他們有一個錯誤,不允許你以UTF-8格式提供網頁。 – wakeup