- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
请找到以下错误的堆栈跟踪的最初几行:(sl
列是我在存储过程代码中使用的)
Incorrect string value: '\xC2\x80\xC2\x99t ...' for column 'sl' at row 1 at
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946):946 at
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985):2985 at
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631):1631 at
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723):1723 at
com.mysql.jdbc.Connection.execSQL(Connection.java:3283):3283 at
and so on..
存储过程代码,CODE II,从下面提到的CODE I调用:
代码 II
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
CREATE DEFINER=`mystuff`@`%` PROCEDURE `usp_sg_ins_fv3`(IN `na` BIGINT, IN `sb` VARCHAR(200), IN `sc` INT, IN `se` INT, IN `sf` VARCHAR(200), IN `sg` VARCHAR(200), IN `sh` VARCHAR(500), IN `si` VARCHAR(200), IN `dj` DATETIME, IN `sk` VARCHAR(200), IN `sl` VARCHAR(500), IN `sm` VARCHAR(200)
, IN `sn` VARCHAR(50))
BEGIN
INSERT INTO sgfDatav3
(
a_bi,
b_vc,
c_int,
e_int,
f_vc,
g_vc,
h_vc,
i_vc,
j_dt,
k_vc,
l_vc,
m_vc,
n,
myTimestamp_dt
)
VALUES
(
na,
sb,
sc,
se,
sf,
sg,
sh,
si,
dj,
sk,
sl,
sm,
sn,
CURRENT_TIMESTAMP()
);
END
代码一:我用来获取 Sendgrid 发布的数据的代码
<cftry>
<cfset incomingData = toString(getHttpRequestData().content) />
<cfset djs = DeserializeJSON(incomingData)/>
<cfset a = "0">
<cfset b = "">
<cfset c = "0">
<cfset d = "0">
<cfset e = "">
<cfset f = "">
<cfset g = "">
<cfset h = "">
<cfset i = "">
<cfset k = "#NOW()#">
<cfset l = "">
<cfset m = "">
<cfset n = "">
<cfoutput>
<cfloop from="1" to="#arraylen(djs)#" index="i">
<cfset a = "0">
<cfset b = "">
<cfset c = "0">
<cfset d = "0">
<cfset e = "">
<cfset f = "">
<cfset g = "">
<cfset h = "">
<cfset i = "">
<cfset k = "#NOW()#">
<cfset l = "">
<cfset m = "">
<cfset n = "">
<cfif StructKeyExists(djs[i],'p')>
<cfset a = djs[i].p />
</cfif>
<cfif StructKeyExists(djs[i],'q')>
<cfset b = djs[i].q />
</cfif>
<cfif StructKeyExists(djs[i],'r')>
<cfset c = djs[i].r />
</cfif>
<cfif StructKeyExists(djs[i],'s')>
<cfset d = djs[i].s />
</cfif>
<cfif StructKeyExists(djs[i],'t')>
<cfset e = djs[i].t />
</cfif>
<cfif StructKeyExists(djs[i],'u')>
<cfset f = djs[i].u />
</cfif>
<cfif StructKeyExists(djs[i],'v')>
<cfset g = djs[i].v />
</cfif>
<cfif StructKeyExists(djs[i],'w')>
{
<cfset i = djs[i].w />
<cfset k = dateAdd("s", i, createDateTime(1970, 1, 1, 0, 0, 0))/>
}
</cfif>
<cfif StructKeyExists(djs[i],'x')>
<cfset l = djs[i].x />
</cfif>
<cfif StructKeyExists(djs[i],'y')>
<cfset m = djs[i].y />
</cfif>
<cfif StructKeyExists(djs[i],'z')>
<cfset n = djs[i].z />
</cfif>
<cfstoredproc procedure="sp1" datasource="db1">
<cfprocparam cfsqltype="cf_sql_bigint" value="#a#">
<cfprocparam cfsqltype="cf_sql_varchar" value="#left(b,199)#">
<cfprocparam cfsqltype="cf_sql_integer" value="#c#">
<cfprocparam cfsqltype="cf_sql_integer" value="#d#">
<cfprocparam cfsqltype="cf_sql_varchar" value="#left(e,199)#">
<cfprocparam cfsqltype="cf_sql_varchar" value="#left(f,199)#">
<cfprocparam cfsqltype="cf_sql_varchar" value="#left(g,499)#">
<cfprocparam cfsqltype="cf_sql_varchar" value="#left(h,199)#">
<cfprocparam cfsqltype="cf_sql_timestamp" value="#k#">
<cfprocparam cfsqltype="cf_sql_varchar" value="#left(l,199)#">
<cfprocparam cfsqltype="cf_sql_varchar" value="#LEFT(m,499)#">
<cfprocparam cfsqltype="cf_sql_varchar" value="#left(n,99)#">
<cfprocparam cfsqltype="cf_sql_varchar" value="XX.XX.X.XX">
</cfstoredproc>
</cfloop>
</cfoutput>
</cftry>
经过研究,我发现人们在谈论某种 UTF8 格式。但如果这就是实际问题,那么为什么我会得到上述结果仅在少数情况下出错而不是每次都出错?请指教。
最佳答案
更新:从 MySQL 5.5.3 开始,还有 UTF8mb4 which is often recommended over UTF8 .
<小时/>听起来确实与unicode有关。该列的字符集和排序规则是什么?请参阅INFORMATION_SCHEMA.COLUMNS看法。
就错误而言,我想这将取决于您要插入的字符(可能会改变)。严格遵守error message description ,即 er_truncated_wrong_value_for_field,听起来像是输入包含无效字符,或者输入字符串的解释被截断。同样,这听起来像是某种字符集问题。
更新:
假设您收到有效的 UTF8 字符串,这似乎确实是字符集问题。尽管我的测试数据库默认为字符集 UTF8,但我可以通过创建一个使用两种不同字符集的小表来重现该错误:LATIN1 和 UTF8。然后插入一个小UTF8 string进入两列。插入 UTF8 列工作正常,但 LATIN1 列失败并出现错误:
Incorrect string value: '/xD0/x9D/xD0/xB0 /xD0...' for column 'ColDefaultCharset' at row 1 ...
尝试将字符集更改为 UTF8,我认为 INSERT 可以正常工作:
ALTER TABLE YourTable MODIFY YourColumnName VARCHAR(500) CHARACTER SET utf8;
表:
CREATE TABLE TestTable (
ID INTEGER NOT NULL AUTO_INCREMENT
, ColDefaultCharset VARCHAR(100) CHARSET LATIN1 NULL
, ColUTF8Charset VARCHAR(100) CHARSET UTF8 NULL
, PRIMARY KEY (ID)
) ENGINE=InnoDB DEFAULT CHARSET=LATIN1;
示例文本:
На берегу пустынных волн
Стоял он, дум великих полн,
程序:
CREATE PROCEDURE `testWithUTF8`
(
IN `sl` VARCHAR(500)
)
BEGIN
INSERT INTO testTable (ColUTF8Charset)
VALUES ( sl );
END
CREATE PROCEDURE `testWithLatin1`
(
IN `sl` VARCHAR(500)
)
BEGIN
INSERT INTO testTable (ColDefaultCharset)
VALUES ( sl );
END
代码:
<cfprocessingdirective pageEncoding="UTF8">
<cfsavecontent variable="text">
На берегу пустынных волн
Стоял он, дум великих полн,
</cfsavecontent>
<!--- Note: For CF10, use cf_sql_nvarchar --->
<cfstoredproc procedure="testWithUTF8" datasource="MySQL" result="procResult">
<cfprocparam cfsqltype="cf_sql_varchar" value="#text#">
</cfstoredproc>
<cfdump var="#procResult#">
<cfstoredproc procedure="testWithLatin1" datasource="MySQL" result="procResult">
<cfprocparam cfsqltype="cf_sql_varchar" value="#text#">
</cfstoredproc>
<cfdump var="#procResult#">
DSN 设置:
characterEncoding=UTF8
关于mysql - 在coldfusion中处理MySQL NativeError Code 1366和SQLState HY000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26788570/
我了解如何使用hy.read_str和hy.eval从 python 评估 hy来自 python 内部的表达式。但是,当我使用这种方法时,导入和全局变量不会在 hy 之间共享。和python环境。考
我知道如何将 hy 模块导入到 python 中。我所要做的就是创建一个包含 hy 代码的 something.hy 文件,然后执行以下操作... import hy import something
如何将对象 HyExpression 打印为 HyExpression([ HyExpression([ HySymbol('/'), HyInteger(2)]),
我正在编写宏以简化使用 matplotlib 绘制绘图的过程。我的第一次尝试,如下所示,工作正常: (defmacro insert-ax [body] `((getattr g!ax (str '~
Hy 中指定元类的语法是什么。我尝试了以下方法: (defclass Metaclass [] ) (defclass Foo [ :meta Metaclass ] ) (defclass Foo
我查看了所有 Hy 的文档,但找不到在任何地方创建对象的方法。更具体地说,我正在尝试关注 this PySide tutorial ,但将每个命令转换为 Hy,我不确定如何在 Hy 中执行 app =
我想得到 Hy! 在 Hylang 中,我如何执行简单的 Python 循环: for i in range(5): print(i) 最佳答案 tutorial提供了这个例子: (for [
有什么方法可以用 Hy 中的索引替换列表或字典元素的值吗?nth 函数似乎不对应 Python 的方括号。 我期待的是下面的翻译。 (setv lst [1 2 3]) (setv (nth lst
我想在 hy 中执行以下操作: from StringIO import StringIO import pandas as pd s = """sepal_length sepal_width
在 python 中,以下代码迭代 numpy 数组(for 循环),并且 numpy 数组的值发生更改: import numpy a08_1 = numpy.arange(8).astype(nu
我想使用 Hy ,一种基于 Python 的 Lisp 方言。然而,我的同事都使用 Python,并且不太可能很快切换到 Lisp 方言。 如何将 Hy 代码打包到标准 Python 模块中? 最佳答
我在玩符号,惊讶地看到: hy 0.18.0 using CPython(default) 3.7.3 on Linux => (bool '0) False => (bool 'False) Tru
我已经从 https://github.com/hylang/hy-mode 成功安装了 hy-mode .我现在可以在 emacs 中打开 .hy 文件并进行语法高亮显示,并且使用 paredit
当我使用 -hy 标志来分析我的程序的堆使用情况时 ./prog +RTS -hy 经常看到构造函数*在结果中,以及其他构造函数,例如 []和 Word8 . 什么类型*在这种情况下?是否与kinds
我不明白为什么会出现这个错误 if (isset($_POST['submit'])) { require "../config.php"; require "../common.ph
我是一名优秀的程序员,十分优秀!