1

我正在构建一个使用从 MSSQL Server 数据库读取的 Web 服务的应用程序。并且在 MSSQL 中没有 UTF8 排序规则,我使用的是 Modern_Spanish_CI_AS 排序规则。我在尝试获取信息时遇到了麻烦,因为带有重音符号的字符无法正确读取..

我的网络服务是使用 Xojo 框架构建的,我认为这不是 Xojo 问题,但我愿意接受任何建议。

这是我的安卓代码:

    OutputStream os = conn.getOutputStream();
    BufferedWriter writer = new BufferedWriter(
            new OutputStreamWriter(os, "UTF-8"));
    if (postDataParams != null)
        writer.write(getPostDataString(postDataParams));

    writer.flush();
    writer.close();
    os.close();
    int responseCode = conn.getResponseCode();

    if (responseCode == HttpsURLConnection.HTTP_OK) {
        String line;
        BufferedReader br = new
                BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
        while ((line=br.readLine()) != null) {
            response+=line;
        }
        br.close();
    } else {
        response = "";
    }
    conn.disconnect();
    return response;

你们知道我能做什么吗??

提前致谢!!

4

1 回答 1

1

您的错误似乎是您告诉输入流它正在读取 UTF-8,而它实际上是“Modern_Spanish_CI_AS”。因此,您需要找到该编码的 Xojo 等效项并将其用于输入。然后,字符串的 endcoding 将匹配文本的数据,当你写出来时,它会根据你的需要转换为 UTF8。

于 2015-11-02T21:18:21.403 回答