Twitter 的网站从不在推文中显示新行,看起来就是这样。有些客户端会显示新行,但 Twitter 不会。他们只是将它们显示为空间。不过,他们确实在推文中留下了实际的换行符。
看起来drawatweet 工作的原因是因为自动换行。使用什么字符或字符集并不重要,使用多少字符也不重要。如果推文中的下一个单词太长而无法容纳其段落的宽度,它将换行。他们用块字符制作了“单词”(不含空格的字符串),但您可以使用任何您想要的字符。
要对此进行测试,请将它们的新行替换为空格。它仍然包裹。您还可以在第二行添加一个空格,您会看到新行没有保留,因为第二行的第一部分现在将位于第一行。用您自己的角色替换积木,它也会起作用。
所以解决方案是像他们一样伪造它,并使线条足够长以始终换行。如果您正在处理单个“单词”,您可以使用 unicode no-break space
( %C2%A0
) 替换您不希望它换行的空格。您也可以用它填充短线,以使它们足够长以包裹。
演示: 
<a href="https://twitter.com/intent/tweet?text=123456789012345678901234567890%0A123456789012345678901234567890%0A123456789012345678901234567890" target="_blank">long lines with \n - works!</a><br />
<a href="https://twitter.com/intent/tweet?text=123456789012345678901234567890%20123456789012345678901234567890%20123456789012345678901234567890" target="_blank">long lines with spaces instead of \n - works! (same as \n)</a><br />
<a href="https://twitter.com/intent/tweet?text=123456789012345678901234567890%0A12345678 9012345678901234567890%0A123456789012345678901234567890" target="_blank">long lines with \n - space in line - doesn't work</a><br />
<a href="https://twitter.com/intent/tweet?text=123456789012345678901234567890%0A12345678%C2%A09012345678901234567890 %0A123456789012345678901234567890" target="_blank">long lines with \n - no-break space (%C2%A0) in line - works!</a><br />
<a href="https://twitter.com/intent/tweet?text=12345678901234567890%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%0A12345678901234567890%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%0A12345678901234567890" target="_blank">short lines with \n - no-break space (%C2%A0) padding - works!</a><br />