如何在XWalkView.load中设置内容的编码(baseUrl,content)

时间:2015-03-29 21:18:47

标签: android encoding crosswalk-runtime

我尝试使用希腊词加载内容字符串。并且这个单词以错误的编码显示。

我使用演示项目CrosswalkDemo,所有项目文件都采用UTF-8编码。我做了以下更改:

1)在文件

中更改了xwalk_core_library的版本
\app\build.gradle
compile 'org.xwalk:xwalk_core_library:12.41.296.5'

2)在文件中添加了权限

\app\src\main\AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

在文件夹/ mnt / sdcard / html /我有文件NotoSerif-Regular.ttf

并尝试在MainActivity.java文件中执行以下操作:

public class MainActivity extends ActionBarActivity {
private XWalkView xWalkWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    xWalkWebView=(XWalkView)findViewById(R.id.xwalkWebView);
    xWalkWebView.load(
            "file:///mnt/sdcard/html/",
            "<html>" +
            "<head>" +
            "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />" +
            "<style>" +
            "@font-face {" +
            "font-family: 'NotoSerif';" +
            "src: url('NotoSerif-Regular.ttf');" +
            "font-weight: normal;" +
            "font-style: normal;" +
            "}" +
            "body {font-family: 'NotoSerif';}" +
            "</style>" +
            "</head>" +
            "<body> Test 12345 δοκιμή </body>" +
            "</html>");

    // turn on debugging
    XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
}

正确加载字体。但是希腊语“δοκιμή”以错误的编码显示。

使用Android的WebView进行类似的测试是成功的。

正确编码应该怎么做?

感谢。

1 个答案:

答案 0 :(得分:0)

这是XWALK-3571

的一部分

这是提交本身:Pull Request 3288