【问题标题】:error: unmappable character (0x98) for encoding windows-1251错误:用于编码 windows-1251 的不可映射字符 (0x98)
【发布时间】:2018-12-19 04:08:04
【问题描述】:

我对项目的组装有问题:

D:...\Main.java:112: 错误:用于编码的不可映射字符 (0x98) windows-1251
robot.getBrowserControl().findElement(By.xpath("//div[.='НАПИСАТЬ']")).click();

这个错误在行: robot.getBrowserControl().findElement(By.xpath("//div[.='НАПИСАТЬ']")).click();

图片: errorIDEA settings。右下角选择 UTF-8。我不确定,但可能就像符号“И”

img errors

这是我的 gradle 文件

plugins {
    id 'java'
}

group 'ru.grbi3yh.processthesefiles'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

jar {
    baseName = 'ProcessthFiles'
}


apply plugin: 'application'

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '2.41.0'
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.7'
}

【问题讨论】:

  • 您是否尝试过重命名元素,使其不使用特殊字符?
  • 我建议你不要在变量/字段/任何东西的命名中使用西里尔字母。你这样问编码麻烦。
  • 各位,这不是元素的名称,而是元素的内容。
  • 我认为我没有知识可以提供帮助,但是什么是“robot”和“By.xpath()”?听起来他们要求 XPath 与 windows-1251 兼容,这很奇怪,但可能是可配置的。
  • 我试图从其他文本中重命名并复制单词“WRITE”。这不是我的西里尔字母。这是谷歌邮件上的“写”按钮。

标签: java gradle intellij-idea encoding windows-1251


【解决方案1】:

为 Java 编译设置编码选项应该会有所帮助:

compileJava.options.encoding = 'UTF-8'
compileTestJava.options.encoding = 'UTF-8'

【讨论】:

    【解决方案2】:

    我不知道解决这个问题是否为时已晚(很肯定是的),但我的建议可以帮助其他人 - 问题在于西里尔符号。我有同样的问题,我通过使用 ANSI 格式保存文件解决了这个问题(如果你使用一些文本编辑器,如记事本,你可以用 ANSI 编码保存你的文件。也许这个选项应该在 IDE 中)

    【讨论】:

      【解决方案3】:

      作为解决此错误的替代方法:

      “错误:编码 windows-1251 的不可映射字符 (0x98)”

      你也可以在Custom VM Options...里面更改default encoding

      通过添加,例如:

      -Dfile.encoding=UTF-8
      

      帮助 |编辑自定义 VM 选项,然后重新启动 IntelliJ IDEA。

      【讨论】:

        猜你喜欢
        • 2019-02-04
        • 2012-11-05
        • 2011-06-27
        • 2015-02-24
        • 1970-01-01
        • 2014-06-17
        • 2013-08-17
        • 2012-07-06
        相关资源
        最近更新 更多