`
mathsfan
  • 浏览: 579138 次
  • 性别: Icon_minigender_1
  • 来自: 浙江省杭州市
社区版块
存档分类
最新评论

Invalid char "\357" in expression

阅读更多
两三天前在用Active Record操作数据库的时候,按理说用utf编码就不会有什么问题的,可还是遇到了这样的一个错误,:

Invalid char '\357' in expression
Invalid char '\273' in expression
Invalid char '\277' in expression

网上也找了很多资料,但都没能解决这个问题。我之所以把这篇文章写在这里,希望能让今后遇到同样问题的人能从网上一下能搜索到我写的解决方法。当然,这两天里我也做了些别的事情,因为我相信偶尔换下心情换下时间也许更有利于解决平时很难解决的问题哈。今天搜索了很久才找到这篇文章,它引导我解决掉了问题:
它文中提到,"这个问题的原因在于 UTF-8的最前面有 EF BB BF这三個 char",突然让我想到以前我在弄什么的时候(好象我的blog提到过,具体在哪篇文章里忘了,呵呵)也是因为最前面有隐藏的字符导致错误,接下来就好办了,用winhex(当然也可以用其他16进制编辑器)打开:

将EF BB BF删除掉。
重新运行程序,成功:)
注:引用本页请注明作者mathsfan。
分享到:
评论
2 楼 mathsfan 2007-01-20  
简单的程序我还是比较喜欢在scite里编,不过可能scite的这点还不完善吧我想```
1 楼 hwx 2007-01-20  
呵呵,你在radrails里本来就可以看到这三个字符,删掉就行了,根本没那么多麻烦事情。另外,把radrails的editor默认字符集改成utf-8。

相关推荐

    Keil_C编译器常见警告与错误信息的解决办法

    Pdata unsigned char XFR_ADC_at_0x25 = 0x25; ``` #### 7. ***WARNING206: ’DelayX1ms’: missing function-prototype ...: ’DelayX1ms’: requires ANSI-style prototype **说明:** 编译器检测到调用`...

    Interpreter模式实现简单计算器

    OperatorExpression(char o, Expression* l, Expression* r) : op(o), left(l), right(r) {} int interpret() override { switch (op) { case '+': return left->interpret() + right->interpret(); case '-':...

    解释器模式代码示例

    public OperatorExpression(char operator, Expression left, Expression right) { this.operator = operator; this.left = left; this.right = right; } @Override public int interpret(Context context) ...

    Java类似JavaScript的eval实现,和随机4个数计算24点

    for (char c : expression.toCharArray()) { if (Character.isDigit(c)) { double value = 0; while (Character.isDigit(c)) { value = value * 10 + (c - '0'); c = expression.charAt(expression.indexOf(c)...

    Java 实现计算器 功能

    char c = expression.charAt(i); if (Character.isDigit(c)) { StringBuilder sb = new StringBuilder(); while (i < expression.length() && Character.isDigit(expression.charAt(i))) { sb.append...

    Visual C++课程设计案例精编(第二版)--第十章 24点游戏软件的开发

    static char THIS_FILE[] = __FILE__; #endif IMPLEMENT_SERIAL(CExpression, CObject, 0) ////////////////////////////////////////////////////////////////////// // CExpression Class ///////////////...

    用c++写的中序历遍计算器

    for (char c : expression) { if (isdigit(c)) { numbers.push(c - '0'); } else if (c == '(') { operators.push(c); } else if (c == ')') { while (!operators.empty() && operators.top() != '(') { int...

    C++输入一段字符串计算结果

    for (char c : expression) { if (std::isdigit(c)) { double value = c - '0'; while (std::isdigit(expression[c - '0' + 1])) { value = value * 10 + expression[++c - '0']; } values.push(value); ++c...

    栈的应用---中缀变后缀

    error("Invalid expression!"); } i++; } while (size(stack) > 0) { output(pop(stack)); } } ``` C语言实现代码如下: ```c #include #include "LinkStack.h" int isNumber(char c) { return ('0' ) &...

    Google C++ Style Guide(Google C++编程规范)高清PDF

    Header Files The #define Guard Header File Dependencies Inline Functions The -inl.h Files Function Parameter Ordering Names and Order of Includes Scoping Namespaces Nested Classes Nonmember, Static ...

    C语言中switch语句的用法

    1. **类型限制**:`expression`的结果必须是整型(`int`、`short`、`long`等)、字符型(`char`)或者枚举类型(`enum`)。浮点数不支持。 2. **常量表达式**:`case`后的值必须是常量表达式,即编译时就能确定的值...

    switch-statement-examples_C-C++_statement_

    unsigned char binaryValue = 0b1101; // 二进制值 1101 printf("Binary: %d, Hexadecimal: %x\n", binaryValue, binaryValue); ``` 最后,`what-is-void.zip`可能包含关于`void`类型的讨论。在C和C++中,`void`...

    单片机程序错误代码及错误信息 错误释义

    #### error42: Error in expression(表达式错误) 此错误出现在编译器无法解析表达式的情况。常见原因是语法错误或数据类型不匹配等。解决方法是检查并修正表达式的语法错误。 #### error43: Illegal assignment...

    2009 达内Unix学习笔记

    集合了 所有的 Unix命令大全 ...telnet 192.168.0.23 自己帐号 sd08077-you0 ftp工具 192.168.0.202 tools-toolss ... 各个 shell 可互相切换 ksh:$ sh:$ csh:guangzhou% bash:bash-3.00$ ... 命令和参数之间必需用空格隔...

    java中switch的使用及语法说明

    - `char` - `int` - `enum` - `String` 从Java 7开始,`switch` 语句还可以接受 `String` 类型。这为处理字符串提供了极大的便利。 #### 三、示例解析 下面详细分析题目中给出的示例: ```java public class ...

    vc调试经验总结.pdf

    文档中提到了`assert(expression && "Function: invalid argument!");`,这表明在调用函数时需要传入一个有效的参数,否则会触发assert断言,终止程序并给出提示信息。 - assert的正确使用可以提高程序的健壮性,...

    C语言的决策艺术:精通switch语句

    char initial = 'b'; switch (initial) { case 'a': printf("Apple"); break; case 'b': printf("Banana"); break; // ... 其他 case 分支 } ``` #### 2. 使用枚举 当`switch`的表达式是枚举类型时,`case`...

    《你必须知道的495个C语言问题》

    3.20 “semantics of‘’change in ANSI C”的警告是什么意思? 42 3.21 “无符号保护”和“值保护”规则的区别在哪里? 42 第4章 指针 45 基本的指针应用 45 4.1 指针到底有什么好处? 45 4.2 我想声明...

    au3反编译源码

    'Regular Expression Renamer' With is you can manually (de)obfuscate function or variable names. enabling the 憇imple?mode button allows you to do mass search'n'relace like this: "\$gStr0001" -> ...

    c++入门教程&demo.pdf

    cout << "Enter an expression (e.g., 1 + 2): "; getline(cin, input); // 去除表达式两端的空格 input.erase(0, input.find_first_not_of(" ")); input.erase(input.find_last_not_of(" ") + 1); // ...

Global site tag (gtag.js) - Google Analytics