我正在将数据加载到 MySQL 数据库中。这是一个共享日历,与贝加尔湖日历。
我转储了数据库,并且 vim 检查了它,我可以看到最近发生的事件。
当我将数据加载到 MySQL 时,我丢失了大多数事件。
我可以看到数据有很多以字符序列结尾的行:
\r\n
例如:
BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Apple Inc.//Mac OS X 10.12.2//EN\r\nCALSCALE:GREGORIAN\r\nBEGIN:VTIMEZONE\r\nTZID:America/Toronto\r\nBEGIN:DAYLIGHT\r\nTZOFFSETFROM:-0500\r\nRRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\r\nDTSTART:20070311T020000\r\nTZNAME:EDT\r\nTZOFFSETTO:-0400\r\nEND:DAYLIGHT\r\nBEGIN:STANDARD\r\nTZOFFSETFROM:-0400\r\nRRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\r\nDTSTART:20071104T020000\r\nTZNAME:EST\r\nTZOFFSETTO:-0500\r\nEND:STANDARD\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT\r\nCREATED:20161206T015502Z\r\nUID:94FA4491-C68F-4751-B14B-A5E7B4B0370E\r\nDTEND;TZID=America/Toronto:20161209T080000\r\nTRANSP:OPAQUE\r\nX-APPLE-TRAVEL-ADVISORY-BEHAVIOR:AUTOMATIC\r\nSUMMARY:new caldav\r\nDTSTART;TZID=America/Toronto:20161209T070000\r\nDTSTAMP:20161206T015502Z\r\nSEQUENCE:0\r\nDESCRIPTION:some notes\\n\r\nBEGIN:VALARM\r\nX-WR-ALARMUID:2C8FDA92-BFB4-4295-86AB-2AE3E09D42A2\r\nUID:2C8FDA92-BFB4-4295-86AB-2AE3E09D42A2\r\nTRIGGER:-PT15M\r\nX-APPLE-DEFAULT-ALARM:TRUE\r\nATTACH;VALUE=URI:Basso\r\nACTION:AUDIO\r\nEND:VALARM\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n','94FA4491-C68F-4751-B14B-A5E7B4B0370E.ics',1,1485446304,'2dc6a43af5125cc1cdcb668ea61cc505',981,'VEVENT',1481284800,1481288400,'94FA4491-C68F-4751-B14B-A5E7B4B0370E'
我知道在阅读下面的内容时我需要转义这些字符,但这对我来说是新的,而且我不完全明白我应该怎么做:
mysql -uroot -p cal < cal.sql
https://www.oreilly.com/library/view/mysql-cookbook/0596001452/ch10s05.html
有人能给我举个例子说明如何转义这些字符吗?它们需要保留在数据库中。
答案1
(这是一条评论,但评论框中的空间有限)
这确实是一项编程任务,因此与主题无关。不过,如果您在 stackoverflow 上按原样发布,它将被关闭。
您向我们展示了一条 RFC5545 记录,其中已经逃脱。
- 您还没有告诉我们该记录在摘录中是如何编码的。
- 您还没有告诉我们如何在 mysql 数据库中对其进行编码。
- 您还没有告诉我们数据库的结构。
- 您向我们展示的将数据加载到数据库的结构在呈现您向我们展示的输入时会阻塞。如果某些记录被加载,那是因为数据记录嵌入在 SQL 语句中。您没有向我们展示这一点。
- 您还没有告诉我们示例记录是否已成功导入。
- 如果记录未加载,它们将生成错误消息。您没有说明这些错误是什么。
如果您提供了未加载的记录的 SQL 语句的明确示例,那么我们有可能告诉您如何解决问题(但不保证)。