目前 BuckleScript 無法直接支援 Unicode

使用 ReasonReact,第一個會遇到的問題就是 中文 無法顯示,這個基本的問題該如何解決呢 ?

Version


ReasonReact 0.6

English


index.re

1
ReactDOMRe.renderToElementWithId(<Component2 greeting="Hello!" />, "index2");

若將 Hello! 改成 嗨 ! 就悲劇了。

chinese000

原因是將 Reason 轉 ECMAScript 的 BuckleScript,目前無法直接處理 Unicode。

Chinese


1
ReactDOMRe.renderToElementWithId(<Component2 greeting={j|嗨 !|j} />, "index2");

1
ReactDOMRe.renderToElementWithId(<Component2 greeting={js|嗨 !|js} />, "index2");

對於中文,目前必須使用 {j| |j}{js| |js} 將中文刮起來,不能直接使用 "" double quote。

chinese001

Conclusion


  • 若在十幾年前,不支援 Unicode 還說得過去,但目前 2019 年還不支援 Unicode 就不太 OK;目前 BuckleScript 官方解法就是 {j| |j}{js| |js},希望日後能在 "" 也能使用中文

Reference


BuckleScript, String Unicode & Interpolation