使用不同语言文本时 Preg_replace 错误。 (去掉线条)
我有这样的内容,
`மிழர்களி வரறில் யூலை மாதம் என்பது கனத்த மாதமாக பதிவு செய்யப்பட்டுள்ளது.
குறிபாக ஐந்து ஆண்ளின் யூலை கள் முக்கியமானவை. 1983ம் ஆண்டிற்கு முன்பே
யூலை மாதம் தமிழர்களுடன் பின்னிப் பிணைந்து`
我想摆脱所有的线条,所以我得到这样的东西。
மிழர்களி வரறில் யூலை மாதம் என்பது கனத்த மாதமாக பதிவு செய்யப்பட்டுள்ளது. குறிபாக ஐந்து ஆண்ளின் யூலை கள் முக்கியமானவை. 1983ம் ஆண்டிற்கு முன்பே குறிபாக ஐந்து ஆண்ளின் யூலை கள் முக்கியமானவை. 1983ம் ஆண்டிற்கு முன்பே
我正在使用此代码 preg_replace("/\n+||\r+/"," ", $content);
但问题是我的输出是:
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ���������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � ����������
我也尝试过 mb_ereg_replace 但得到了相同的结果。 当我使用这个 preg_replace("/\n+||\r+/","", $content);
那么它很好,但问题是我需要文本之间的空格,所以而不是有一条新线我需要一个空间。我也尝试过序列化。 预先感谢您。
I have content like this
`மிழர்களி வரறில் யூலை மாதம் என்பது கனத்த மாதமாக பதிவு செய்யப்பட்டுள்ளது.
குறிபாக ஐந்து ஆண்ளின் யூலை கள் முக்கியமானவை. 1983ம் ஆண்டிற்கு முன்பே
யூலை மாதம் தமிழர்களுடன் பின்னிப் பிணைந்து`
I want to get rid of all the lines so i get something like this.
மிழர்களி வரறில் யூலை மாதம் என்பது கனத்த மாதமாக பதிவு செய்யப்பட்டுள்ளது. குறிபாக ஐந்து ஆண்ளின் யூலை கள் முக்கியமானவை. 1983ம் ஆண்டிற்கு முன்பே குறிபாக ஐந்து ஆண்ளின் யூலை கள் முக்கியமானவை. 1983ம் ஆண்டிற்கு முன்பே
I am using this code preg_replace("/\n+||\r+/"," ", $content);
but the problem is that I my output is:
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �
I have also tried mb_ereg_replace but I get the same results.
When i use this preg_replace("/\n+||\r+/","", $content);
then it is fine but the problem is that I need space inbetween the text, so instead of having a new line I need a space. I have also tried seriallize.
Thanks you in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
preg_replace
按字节工作,除非您传递U
标志。您的正则表达式不仅用空格替换换行符,而且还在每个字节之间插入空格,因为它与空字符串匹配。这破坏了 UTF-8 编码。您可能打算使用类似
'/[\r\n]+/'
之类的正则表达式。preg_replace
works bytewise, unless you pass theU
flag. And your regular expression is not only replacing newlines with spaces, it is also inserting a space between every byte since it matches the empty string. Which breaks the UTF-8 encoding.You probably meant to use a regular expression something like
'/[\r\n]+/'
instead.