我编写了一个快速而简单的实用程序来解析文本文件,但在某些情况下它会写出一个“�”字符。我的实用程序从包含以下格式的“记录”的 .txt 文件中读取:
Biography
Title:George F. Kennan: An American Life
Author:John Lewis Gaddis
Kindle: B0054TVO1G
Hardcover: B007R93I1U
Paperback: 0143122150
Image link: <a href="https://rads.stackoverflow.com/amzn/click/com/B0054TVO1G" rel="nofollow noreferrer"><img src="http://images.amazon.com/images/P/B0054TVO1G.01.MZZZZZZZ.jpg" alt="Book Cover" /></a>
...并将其中的行写入 CSV 文件,例如:
Biography,"George F. Kennan: An American Life","John Lewis Gaddis",B0054TVO1G,B007R93I1U,0143122150,<a href="https://rads.stackoverflow.com/amzn/click/com/B0054TVO1G" rel="nofollow noreferrer"><img src="http://images.amazon.com/images/P/B0054TVO1G.01.MZZZZZZZ.jpg" alt="Book Cover" /></a>
...但在某些情况下,如前所述,那个奇怪的角色会将自己附加到作者的名字后面。在发生这种情况的大多数情况下,它似乎是 .txt 文件中的空格字符。在将作者姓名写入 CSV 文件之前,我会对其进行修整,因此它显然不会被视为空格。
当我用这些字符保存文本文件时,我收到有关非 unicode 字符等的消息。
这可能是什么原因?更好的是,如何通过搜索和替换操作删除它们?在记事本中,找不到它们,所以我必须一个一个地删除它们。
在 .txt 文件中之前,此数据位于 Open Office/.odt 文件中,如果这对任何人都有意义的话。
顺便说一句,我不知道“stackoverflow”是如何进入上面的href的;这不是我粘贴的原始文本...
更新
我很好奇这个角色是如何进入我的文件的。我肯定没有(故意)把它放在那里,就像我在上面的 URL 中添加了“stackoverflow”一样。是不是对 Environment.Newline 的调用会添加它?
这是我的过程:
1) Copy and paste info from the interwebs into an Open Office/.odt file
2) Copy and past that into a text (Notepad) file
3) Open that text file programmatically and loop through it, writing to a new "csv"/.txt file.
更新 2
愚蠢的我——我所要做的就是保存文件(这不会保存那些奇怪的字符),然后再次打开它。IOW,当我今天(在家里,下班后)打开它时,那些都不见了。
更新 3
我写得太早了——它用问号代替了奇怪的字符(一个“正常”的,而不是一个程式化的)。