【发布时间】:2013-03-18 22:25:15
【问题描述】:
我不知道该行是否以 '\n' 或 '\r' 或 '\r\n' 结尾 并且不要对文本进行什么编码,除非编码是utf-8,否则它可以是no bom。 是否有函数或库可以做到这一点,或者只是告诉我一行的终止。
【问题讨论】:
-
如果您不知道编码,则无法确定。考虑字节序列
30 0A。除非您知道编码,否则无法判断这是数字“0”后跟换行符的 ASCII 表示,还是字符“《”的 UTF16-BE 表示。所以,首先你需要一个库来猜测字符编码,然后你可以考虑换行。 -
您的意思是任何文本编码,还是总是 ASCII/UTF-8 但使用不同的行终止符?
-
@teppic 不,不是,也可以是GBK。
-
@SteveJessop 如果假设如果是GBK编码那么终结符是'\r\n',如果是utf8,编码终结符是'\n',那么有没有更好的办法呢?