【问题标题】:expected hexadecimal digit预期的十六进制数字
【发布时间】:2012-09-16 20:51:48
【问题描述】:

当我将文件路径(例如 'C:\u01\oracle\fmw_11114\data\proj\folder\name 09022014.txt)从 java 控制器传递到 javascript 脚本时,会导致错误“Expected hexadecimal Digit”。

此路径从文件系统读取并直接传递给脚本,在将字符串传递给脚本之前,我无法转义字符串中的反斜杠“\”。任何想法如何解决这个问题?

if(document.getElementById('hdnA').value == 'ALR') {
     alert('ERROR: ' + '${arch}' + ' file not found.')
}

【问题讨论】:

  • 直接传给脚本,我无法转义反斜杠 为什么?路径必须写入脚本部分的任何地方

标签: javascript spring-mvc jstl


【解决方案1】:

错误消息可以很好地指示出了什么问题。

Unicode 字符可以使用以下格式直接传递给脚本:\uXXXX(其中 XXXX 表示特定字符​​的代码)。

您的路径包含名称以 U 开头的文件夹,因此路径字符串包含用于文字 Unicode 字符插入 (\u) 的文字控制字符。

一个简单的解决方法是使用正斜杠传递文件路径:

'C:/u01/oracle/fmw_11114/data/proj/folder/name 09022014.txt'

我的 Java 应用程序遇到了同样的问题,它尝试在元素中动态插入带有路径值的脚本。将我的反斜杠更改为正斜杠解决了我的问题。

【讨论】:

    【解决方案2】:

    萨拉姆! 使用这个正则表达式:

    patt=/\\/g;
    str = str.replace(patt,"\\\\")
    

    这对我有用;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 1970-01-01
      • 2013-04-28
      • 2015-08-08
      • 2017-08-12
      • 2023-03-14
      • 2014-03-19
      相关资源
      最近更新 更多