【问题标题】:Android Studio:error: illegal character: '\u2028'Android Studio:错误:非法字符:'\u2028'
【发布时间】:2016-04-07 07:08:52
【问题描述】:

我正在尝试做一个 JSONObject 请求:

final String URL = "https://some/url";

// Post params to be sent to the server
HashMap<String, String> params = new HashMap<String, String>();
params.put("param1", param1);

params.put("param2", param2);

params.put("param3", param3);
    
params.put("param4", param4);


JsonObjectRequest req = new JsonObjectRequest(URL, new JSONObject(params), new Response.Listener<JSONObject>() {
    @Override
    public void onResponse(JSONObject response) {
        try {
            VolleyLog.v("Response:%n %s", "läuft");
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        VolleyLog.e("Error: ", error.getMessage());
    }
});

// add the request object to the queue to be executed
NetworkController.getInstance().addToRequestQueue(req);

我无法编译项目,因为我收到参数的语法错误:

错误:(144, 9) 错误:非法字符:'\u2028'

我该如何解决这个问题?

【问题讨论】:

  • 删除那个字符?
  • 我查过这个字符:u2028 表示行分隔符。我的参数中没有行分隔符
  • 删除该位置的那个字符并再次输入。
  • 首先,这是编译时错误还是运行时错误?
  • 编译错误

标签: java android string android-studio android-volley


【解决方案1】:

这是换行符,如果您转到导致错误的每一行并删除“不可见”的最后一个字符,那么错误将解决

转到导致错误的行尾并按一次退格键,对于每个有非法字符错误的行。

【讨论】:

  • 这行得通。不过,我不得不在某些行上按退格键几次。
  • Crazy Android Studio,java 行的末尾按 delete 可以正常工作,但对于某些行,您必须将光标移动到行首并再次移动到行尾,然后按 delete 到删除 /u2028 字符错误.. 被激怒了。但这是什么原因呢?
【解决方案2】:

如果你是mac用户,那么你可以

在 TextWrangler 中复制和粘贴文本 视图 -> 文本显示 -> 显示不可见项

它会显示像“|”这样的符号。删除它,你就可以开始了。

【讨论】:

    【解决方案3】:

    好吧,只是删除所有字符并重新重写它们会有所帮助。太疯狂了。。

    【讨论】:

      【解决方案4】:

      最好是使用 Android Studio 的替换功能,在 “替换为”中放一个空字符串

      【讨论】:

      • 确保你检查了正则表达式,这就像一个魅力!
      【解决方案5】:

      将代码剪切并粘贴到文本编辑器中,以将其转换为简单文本。然后删除所有多余的空格。之后,使用 Android Studio 的 Reformat code 功能让它再次变得美好。

      对我来说,只删除 Android Studio 中的空格是行不通的。

      【讨论】:

        【解决方案6】:

        我遇到了完全相同的问题,但就我而言,错误的数量相当大(大约 95 个)。唯一明智的做法是用空字符替换这些字符。这个简短的 Python 脚本会执行此操作并打印出文件的新内容。使用文件的正确路径运行它。干杯。

        with open(‘filename.java’, ‘r’) as file:
            data=(file.read().decode(“utf-8”)).replace(u’\u2028', ‘’).encode(“utf-8”)
            print data
        

        【讨论】:

          猜你喜欢
          • 2019-05-24
          • 2015-08-23
          • 1970-01-01
          • 2015-05-09
          • 2011-02-27
          • 2015-08-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多