是一個 3 位元組字元,在 (UTF-8)中這個字元被表示為 0xE2, 0x82, 0xAC。
有時候,你的系統中沒有設定所有的地方為相同的字元集的時候(Confluence,伺服器和資料庫都應該是相同的字元集),你可能會遇到一些字元不能顯示的問題。
...
I write a page with a Euro sign in it (€). All is well, the Euro sign shows up in the wiki markup text-box, and the preview, and the display of the saved page.
One day later, the Euro sign has changed into a question mark upside down!
What is going on? Why does the Euro sign mysteriously change? How do I prevent it?
有趣的是,這個字元集在測試的時候是沒有問題的,Confluence 和資料庫都能夠沒有問題的完整識别這個字元。
導緻這個問題的可能是有如下 2 個原因:
資料庫和 Confluence 使用的是 utf-8 編碼,但是連接配接不是。
當資料在應用程式和資料庫之間進行傳遞的時候,如果使用的不是 utf-8 編碼,有可能會導緻字元不能被識别。你可以在你的連接配接中指定使用 utf-8 編碼,你這個問題将會自動被解決,請注意修改資料庫連接配接後,已經存在的資料不會被修改,你可能需要找到有亂碼的地方自行進行修改。
資料庫沒有使用 utf-8,但是 Confluence 和連接配接使用的是。
如果你的資料庫編碼沒有使用 UTF-8 編碼,例如你可能使用的是 latin1 編碼,那麼有可能在你存儲 "€" 字元的時候導出存儲錯誤。這個有可能是因為 緩存(caching) 導緻的。 當 Confluence 将資料庫存儲到資料庫的時候,Confluence 有可能還保留了一個本地的緩存拷貝。如果資料庫的字元集沒有被正确的設定,歐元的标記可能不能在資料庫中正确存儲,但是 Confluence 有可能會持續使用緩存的資料(這個資料有正确的編碼)。這個錯誤隻能在緩存被删除後才能察覺到,因為不正确的字元編碼已經存儲到資料庫中了。
針對存儲使用 latin1 編碼的字元集,所有 2 位元組的 UTF-8 編碼字元都應該能夠正确顯示,在存儲歐元标記的時候,資料庫中的存儲資料将會顯示為 '?' 。Confluence 的字元編碼被設定為 UTF-8 編碼,那麼 2 位元組的 UTF-8 編碼,在資料庫中存儲的使用的 latin1 字元集,那麼資料庫也會使用的是 2 位元組的字元集而不會使用 UTF-8 字元集。這樣 3 自己的字元集,例如歐元就不能正确存儲了。
請确定你按照你系統的建議為你的所有的實體都設定 UTF-8 編碼,請參考
Troubleshooting Character Encodings頁面中内容。
https://www.cwiki.us/pages/viewpage.action?pageId=37487808