最近在一个项目(OA项目)中出现了一个奇怪的问题,项目的流程是这样的:从数据库中拿出一个收文,然后用web office显示在jsp页面上,但是有的收文可以显示,但有的收文不能显示,还报出了未结束的字符串常量,代码0,和缺少对象,代码0的错误,经过几番周折后终于发现了问题。
原来在收文节点进行签署意见时。用户进行了回车操作,进而在签署的意见字符串中有了一个"\r"的转义符,但是在程序中只对"\n"进行了处理,并没有对"\r"进行处理,结果在jsp页面中对文档中的书签进行赋值时,作为值参数的字符串因为有"\r"转义符,本来是一个字符串却被分在了两行。导致了出错。
比如:String str = "aa";
reloadReceiveDocumentMark("bbmyj", aa);这种情况下是正确的。
但如果在字符串中间有了个回车:String str = "aa\rbb";当执行方法reloadReceiveDocumentMark("bbmyj", aa);进行赋值时就被处理成
reloadReceiveDocumentMark("bbmyj", "aa
bb);这样就出错了。
这个问题困扰了我大半天,拿出来和大家分享下,希望对大家有帮助。
分享到:
相关推荐
理解不同平台和浏览器如何处理回车换行,以及在代码中适当地进行转义和编码,是避免这类问题的关键。在开发Web应用程序时,应确保在前端和后端之间传输的数据正确处理了回车换行,以保证程序的稳定性和兼容性。
在编程和文本处理中,回车(\r或\n)是换行的重要符号,但有时我们可能需要在不产生新行的情况下表示回车,这时转义符就派上用场了。转义符通常是反斜杠(\),它可以用来预处理某些字符,让它们失去原本的意义。...
在C#转义字符中,\n表示回车换行,\t表示横向跳到下一制表位置,\v表示竖向跳格,\b表示退格,\r表示回车,\f表示走纸换页,\\表示反斜线符,\'表示单引号符,\"表示双引号符,\a表示鸣铃,\ddd表示1~3位八进制数所...
1. 使用转义字符来表示字符集中定义的字符,比如 ASCII 里面的控制字符及回车换行等字符,这些字符都没有现成的文字代号。所以只能用转义字符来表示。 2. 某一些特定的字符在编辑语言中被定义为特殊用途的字符。这些...
- 在表示不可打印字符时,通常使用转义字符,以确保代码的可读性和正确性。 - \n实际上是回车加换行的组合,而在某些系统中,仅使用换行符就能达到同样的效果。 - \t的制表位可以设置,以适应不同的显示需求。 - 单...
### 常见转义字符在Java中的应用与...通过上述介绍,我们可以看出,Java中的转义字符为程序员提供了极大的便利,使得在处理字符串和其他文本数据时更加灵活高效。掌握这些转义字符对于编写高质量的Java程序至关重要。
3. **不可打印字符的表示**:当需要在C程序中使用不可打印的字符时,转义字符提供了一种标准的表示方法,如使用`\n`表示换行,而非直接键入无法显示的字符。 4. **制表符的灵活性**:`\t`制表符可以设置为向前移动...
总结而言,Python中处理字符串内部换行非常简单和直观,通过转义字符\n和三引号字符串这两种方式,开发者可以根据不同的需求和上下文选择更适合的方法来实现字符串的多行显示。在编写代码时,确保字符串的换行符合...
标题中的“简单程序”指的是一个基础的编程任务,它的功能是读取用户输入的一行字符,当遇到空格时在输出时自动换行。这个程序通常用于教学目的,帮助初学者理解基本的输入输出处理和字符串操作。在这个程序中,用户...
### Java转义字符详解 #### 一、八进制转义序列 在Java中,八进制转义序列是...以上内容涵盖了Java中转义字符的基础知识及应用场景,对于Java编程初学者来说,理解和掌握这些转义字符对于编写正确的代码至关重要。
例如在C++、Java和Python中,转义字符的表示和用法都和C语言类似,可以实现类似的功能,如换行、制表等。 5. 转义字符在编程实践中的作用 转义字符在编程中的主要作用包括但不限于: - 在需要表示不可见字符时使用...
在C语言中,转义字符和格式控制符是两个基础且重要的概念。它们在输入输出操作中起到关键作用,允许程序员控制数据的格式和程序的输出方式。 转义字符是一系列特殊的字符,它们通常以反斜杠 "\" 开头,用于表示那些...
- 对于反斜杠 `\` 的使用要特别注意,它既是Java字符串的转义字符,也是正则表达式中用于匹配特殊字符的元字符。 - 在编写正则表达式时,应当根据实际需求选择使用贪婪、非贪婪或占有模式。 通过上述的知识点,我们...
在Java编程语言中,转义...当涉及到字符串中的特殊字符时,使用八进制转义字符、Unicode转义字符或普通转义字符序列取决于具体的需求和场景。通常,推荐使用最常见的转义序列,因为它们在解析和处理上更为直观和高效。
在Python编程语言中,字符...比如在输出多行文本、格式化输出、处理包含引号的文本等场景下,转义字符能够帮助我们更灵活地控制字符串的显示和处理。在实际编程中,掌握这些转义字符的用法能够提升代码的可读性和效率。
这里的`\ `是一个转义字符,表示空格。`g`标志表示全局匹配,意味着替换所有出现的空格,而不仅仅是第一个。例如: ```javascript // jQuery 示例 $("#accuracy").val($("#accuracy").val().replace(/\ +/g,""))...
这些转义字符广泛应用于字符串和字符数组中,以便能够更方便地表示某些特殊字符。 #### 2. 八进制转义序列 八进制转义序列允许开发者通过指定八进制数字来表示任何字符,其范围为`\000`到`\377`。例如: - `\0` ...
如果内容包含换行符(`\n`),会被转义成`
`,导致换行失效。可以通过设置BoundField的`HtmlEncode`属性为`false`来禁用HTML编码,使换行符生效。 4. **自定义列格式化**: 使用`DataBound`事件,可以在...