0

由于过滤器脚本编码不佳(当然是您真正创建的!),我在数据库中遇到了一些狡猾的字符问题。

我通过将数据从 PHPMyAdmin 导出为 SQL 文件来修复数据,然后煞费苦心地CTRL+H搜索并替换正确的字符。然后我使用 PHPMyAdmin 重新导入了 SQL 文件(嗯,三个单独的文件)。

这对大多数数据都有效,但在一些帖子中,它们似乎完全被切断了。

meta_id     post_id     meta_key            meta_value
162227      264847      water_chemistry     <strong>Temperature</strong>:
162228      264847      diet                <em>Homaloptera</em>
162229      264847      behaviour           <p>Not an aggressive fish although its particular requirements limit the choice of suitable tankmates.
162218      264847      maintenance         <p>Most importantly the water must be clean and well-oxygenated so we suggest the use of an over-sized

例如,这个物种概况(上面的文字)应该已经UPDATE应用了以下语句:

UPDATE `wp_postmeta` SET `meta_id` = 162228,`post_id` = 264847,`meta_key` = 'diet',`meta_value` = '<em>Homaloptera</em> spp. are specialised grazers feeding on <a href="/glossary/b/biofilm" rel="/glossary/b/biofilm?hover=true">biofilm</a>, small crustaceans, insect <a href="/glossary/l/larvae" rel="/glossary/l/larvae?hover=true">larvae</a> and other invertebrates. In captivity some sinking dried foods may be accepted but regular meals of live or frozen <em><a href="/glossary/D/Daphnia" rel="/glossary/D/Daphnia?hover=true">Daphnia</a></em>, <em><a href="/glossary/A/Artemia" rel="/glossary/A/Artemia?hover=true">Artemia</a></em>, <a href="/glossary/b/bloodworm" rel="/glossary/b/bloodworm?hover=true">bloodworm</a>, etc. are essential for the maintenance of good health, and it''s highly preferable if the <a href="/glossary/t/tank" rel="/glossary/t/tank?hover=true">tank</a> contains rock and other solid surfaces with growths of <a href="/glossary/a/algae" rel="/glossary/a/algae?hover=true">algae</a> and other <a href="/glossary/a/aufwuchs" rel="/glossary/a/aufwuchs?hover=true">aufwuchs</a>.\r\n\r\nBalitorids are often seen on sale in an emaciated state which can be difficult to correct. A good dealer will have done something about this prior to sale but if you decide to take a chance with severely weakened specimens they''ll initially require a continual, easily-obtainable source of suitable foods in the absence of competitors if they''re to recover.' WHERE `wp_postmeta`.`meta_id` = 162228;

UPDATE `wp_postmeta` SET `meta_id` = 162227,`post_id` = 264847,`meta_key` = 'water_chemistry',`meta_value` = '<strong>Temperature</strong>: [temp]\r\n\r\n<strong>pH</strong>: [pH]\r\n\r\n<strong>Hardness</strong>: [hardness]' WHERE `wp_postmeta`.`meta_id` = 162227;

UPDATE `wp_postmeta` SET `meta_id` = 162229,`post_id` = 264847,`meta_key` = 'behaviour',`meta_value` = '<p>Not an aggressive fish although its particular requirements limit the choice of suitable tankmates. <a href="/glossary/s/species" rel="/glossary/s/species?hover=true">Species</a> inhabiting similar environments include <em>Barilius</em>, <em>Discherodontus</em>, <em>Garra</em>, larger <em>Devario</em>, some <em>Rasbora</em>, gobies of the <a href="/glossary/g/genera" rel="/glossary/g/genera?hover=true">genera</a> <em>Rhinogobius</em>, <em>Sicyopterus</em> and <em>Stiphodon</em> plus <em>Glyptothorax</em>, <em>Akysis</em> and <em>Oreoglanis</em> spp. catfishes.\r\n\r\nMany loaches from the <a href="/glossary/f/family" rel="/glossary/f/family?hover=true">family</a> Nemacheilidae and most from Balitoridae are also suitable although harmless squabbles may occur with the latter group in particular. Research your choices before purchase to be sure.\r\n\r\nIt''s found living in aggregations in nature so buy six or more to see it at its best as when kept singly or in pairs/trios it''s less bold. The interaction between individuals is also interesting to watch and a group will typically arrange themselves close to one another facing directly into the water flow at certain times of day.</p>' WHERE `wp_postmeta`.`meta_id` = 162229;

UPDATE `wp_postmeta` SET `meta_id` = 162218,`post_id` = 264847,`meta_key` = 'maintenance',`meta_value` = '<p>Most importantly the water must be clean and well-oxygenated so we suggest the use of an over-sized <a href="/glossary/f/filter" rel="/glossary/f/filter?hover=true">filter</a> as a minimum requirement. Turnover should ideally be 10-15 times per hour so additional powerheads, airstones, etc., should be employed to achieve the desired flow and <a href="/glossary/o/oxygenation" rel="/glossary/o/oxygenation?hover=true">oxygenation</a> if necessary.\r\n\r\n<a href="/glossary/b/base" rel="/glossary/b/base?hover=true">Base</a> <a href="/glossary/s/substrate" rel="/glossary/s/substrate?hover=true">substrate</a> can either be of <a href="/glossary/g/gravel" rel="/glossary/g/gravel?hover=true">gravel</a>, <a href="/glossary/s/sand" rel="/glossary/s/sand?hover=true">sand</a> or a mixture of both to which should be added a layer of water-worn rocks and pebbles of varying sizes. Driftwood roots and branches are also suitable and although rarely a feature of the natural <a href="/glossary/h/habitat" rel="/glossary/h/habitat?hover=true">habitat</a> <a href="/glossary/a/aquatic" rel="/glossary/a/aquatic?hover=true">aquatic</a> plants from adaptable genera such as <em>Microsorum</em>, <em>Crinum</em> and <em>Anubias</em> spp. can also be added. The latter are particularly useful as <em>Homaloptera</em> spp. appear to enjoy resting on their leaves.\r\n\r\nSince it needs stable water conditions and feeds on <a href="/glossary/b/biofilm" rel="/glossary/b/biofilm?hover=true">biofilm</a> this species should never be added to a biologically immature set-up, and a tightly-fitting cover is necessary since it can literally climb glass. While regular partial water changes are essential aufwuchs can be allowed to grow on all surfaces except perhaps the viewing pane.</p>' WHERE `wp_postmeta`.`meta_id` = 162218;

然而由于某种原因,正如您在物种概况中看到的那样(在数据库中完全一样),大部分文本都丢失了。

有什么想法可能导致这种情况吗?导入完全没有错误。


编辑

我尝试用只是为了查看数据是否正确导入来替换\r\n字符###- 它没有。

4

2 回答 2

2

最后,这是一个编码问题。当我最初将我的 SQL 数据拆分为两个单独的文件时,新文件的默认编码为 ANSI,其中原始文件(我的数据库是 UTF-8)。

将编码更改为 UTF-8 后,我看到大量奇怪的小字符,我的文本编辑器无法搜索和替换。

我将编码设置回 ANSI,用 UTF-8 创建了一个新的文本文档,然后简单地将 ANSI 文档中的信息复制粘贴到新的 UTF-8 文件中。

以上所有内容都是在Notepad++中完成的。

问题已解决 - 7 小时诊断问题;不到 5 秒即可修复。

于 2012-07-14T00:13:13.213 回答
0

如果您使用的是 PHP,请使用 mysql_real_escape_string():这就是正在发生的事情

mysql> select "<strong>Temperature</strong>: [temp]\r\n\r\n<strong>pH</strong>:";
+--------------------------------------------------------------+
| <strong>Temperature</strong>: [temp]

<strong>pH</strong>: |
+--------------------------------------------------------------+
| <strong>Temperature</strong>: [temp]

<strong>pH</strong>: |
+--------------------------------------------------------------+
1 row in set (0.00 sec)

所以使用 php 函数来准确地存储数据。

http://dev.mysql.com/doc/refman/5.1/en/mysql-real-escape-string.html

于 2012-07-13T20:41:21.717 回答