我遇到以下问题:
我删除了表中的一个键(错误地),然后通过这种方式恢复了整个表:
LOAD FROM 'C:\db\rqrequesttrans.dat' delimiter '~' insert into rqrequesttrans
几乎所有内容都可以,但我在LVARCHAR
字段中损坏了数据:
例如:
<p>ääÊãÑå ÈÇäÊæÈ ÈÇääÇÒå.</p>
代替<p>للتكرم بالتنبيه باللازم.</p>
如何解决此问题?
答案 0 :(得分:1)
这不是一个真正的答案;这是一些分析,并要求提供更多信息。
阿拉伯数据在我的浏览器中显示为UTF-8:
0x3C = U+003C
0x70 = U+0070
0x3E = U+003E
0xD9 0x84 = U+0644
0xD9 0x84 = U+0644
0xD8 0xAA = U+062A
0xD9 0x83 = U+0643
0xD8 0xB1 = U+0631
0xD9 0x85 = U+0645
0x20 = U+0020
0xD8 0xA8 = U+0628
0xD8 0xA7 = U+0627
0xD9 0x84 = U+0644
0xD8 0xAA = U+062A
0xD9 0x86 = U+0646
0xD8 0xA8 = U+0628
0xD9 0x8A = U+064A
0xD9 0x87 = U+0647
0x20 = U+0020
0xD8 0xA8 = U+0628
0xD8 0xA7 = U+0627
0xD9 0x84 = U+0644
0xD9 0x84 = U+0644
0xD8 0xA7 = U+0627
0xD8 0xB2 = U+0632
0xD9 0x85 = U+0645
0x2E = U+002E
0x3C = U+003C
0x2F = U+002F
0x70 = U+0070
0x3E = U+003E
其他数据显示为ISO 8859-1(或8859-15)中的UTF8编码字符:
0x3C = U+003C
0x70 = U+0070
0x3E = U+003E
0xC3 0xA4 = U+00E4
0xC3 0xA4 = U+00E4
0xC3 0x8A = U+00CA
0xC3 0xA3 = U+00E3
0xC3 0x91 = U+00D1
0xC3 0xA5 = U+00E5
0x20 = U+0020
0xC3 0x88 = U+00C8
0xC3 0x87 = U+00C7
0xC3 0xA4 = U+00E4
0xC3 0x8A = U+00CA
0xC3 0xA6 = U+00E6
0xC3 0x88 = U+00C8
0x20 = U+0020
0xC3 0x88 = U+00C8
0xC3 0x87 = U+00C7
0xC3 0xA4 = U+00E4
0xC3 0xA4 = U+00E4
0xC3 0x87 = U+00C7
0xC3 0x92 = U+00D2
0xC3 0xA5 = U+00E5
0x2E = U+002E
0x3C = U+003C
0x2F = U+002F
0x70 = U+0070
0x3E = U+003E
我们可以看到<p>
和.</p>
数据很常见,空白U + 0020出现在同一个地方。
对齐数据块,我们可以有一些一致性和不一致性:
0xD9 0x84 = U+0644 : 0xC3 0xA4 = U+00E4 Delta = 0x0560
0xD9 0x84 = U+0644 : 0xC3 0xA4 = U+00E4 Delta = 0x0560
0xD8 0xAA = U+062A : 0xC3 0x8A = U+00CA Delta = 0x0560
0xD9 0x83 = U+0643 : 0xC3 0xA3 = U+00E3 Delta = 0x0560
0xD8 0xB1 = U+0631 : 0xC3 0x91 = U+00D1 Delta = 0x0560
0xD9 0x85 = U+0645 : 0xC3 0xA5 = U+00E5 Delta = 0x0560
0x20 = U+0020 : 0x20 = U+0020
0xD8 0xA8 = U+0628 : 0xC3 0x88 = U+00C8 Delta = 0x0560
0xD8 0xA7 = U+0627 : 0xC3 0x87 = U+00C7 Delta = 0x0560
0xD9 0x84 = U+0644 : 0xC3 0xA4 = U+00E4 Delta = 0x0560
0xD8 0xAA = U+062A : 0xC3 0x8A = U+00CA Delta = 0x0560
0xD9 0x86 = U+0646 : 0xC3 0xA6 = U+00E6 Delta = 0x0560
0xD8 0xA8 = U+0628 : 0xC3 0x88 = U+00C8 Delta = 0x0560
0xD9 0x8A = U+064A
0xD9 0x87 = U+0647
0x20 = U+0020 : 0x20 = U+0020
0xD8 0xA8 = U+0628 : 0xC3 0x88 = U+00C8 Delta = 0x0560
0xD8 0xA7 = U+0627 : 0xC3 0x87 = U+00C7 Delta = 0x0560
0xD9 0x84 = U+0644 : 0xC3 0xA4 = U+00E4 Delta = 0x0560
0xD9 0x84 = U+0644 : 0xC3 0xA4 = U+00E4 Delta = 0x0560
0xD8 0xA7 = U+0627 : 0xC3 0x87 = U+00C7 Delta = 0x0560
0xD8 0xB2 = U+0632 : 0xC3 0x92 = U+00D2 Delta = 0x0560
0xD9 0x85 = U+0645 : 0xC3 0xA5 = U+00E5 Delta = 0x0560
所以,显然,沿线某处出现了问题。很可能是代码集存在问题。除了字符代码正确且不正确之外,常数0x0560并不重要,这是神奇的数字。
如果没有很多问题的答案,没有人能够给你很多帮助。当然,有一些明显的可能性,一些答案会使一些问题没有实际意义。
C:\db\rqrequesttrans.dat
是如何创建的?区域设置是否相同?oncheck -pp
或oncheck -pP
)理想情况下,您将在一个小表中演示损坏 - 一个表中包含完整数据列的一小部分列(2列或3列,其中一列是LVARCHAR列),以及少量行(根据10)。我们可能没有那么幸运能够创造它。列出的问题可能是第一个被问到的问题(除了oncheck
信息之外)。