imfuxiao / Hamster

librime for iOS App
GNU General Public License v3.0
1.29k stars 80 forks source link

Enter键上划换行\r\n存在问题 #101

Closed imfuxiao closed 10 months ago

imfuxiao commented 1 year ago

问题: 目前在类似微信的app中, 无法换行, 期望: 添加Enter上划换行功能.

wzxmer commented 1 year ago

还有一个,期望:删除键,左滑清除全部编码

imfuxiao commented 1 year ago

还有一个,期望:删除键,左滑清除全部编码

这个已经有issue. #85

host2318 commented 1 year ago

版本号:1.6.12(1) rime:1.8.5 在微信输入enter上滑,不会换行。信息发出后为 乱码方框

imfuxiao commented 1 year ago

版本号:1.6.12(1) rime:1.8.5 在微信输入enter上滑,不会换行。信息发出后为 乱码方框

我刚测试是正常的,iOS 16.5, 微信 8.0.37, 仓:1.6.13

仓1.6.12应该也是正常的,由\r\n改为\r,就是在12版本上改的。

https://github.com/imfuxiao/Hamster/assets/6482586/c4b480d4-4981-4da1-b70f-a8cc456ada6e

host2318 commented 1 year ago

版本号:1.6.12(1) rime:1.8.5 在微信输入enter上滑,不会换行。信息发出后为 乱码方框

我刚测试是正常的,iOS 16.5, 微信 8.0.37, 仓:1.6.13

仓1.6.12应该也是正常的,由\r\n改为\r,就是在12版本上改的。

RPReplay_Final1686194417.MP4

我刚把输入法更新到1.6.13,微信更新到了8.0.37,iOS16.5 你在微信自己的界面看起来换行了。但是发送到对方,他看起来没有换行,就中间是个小方框

imfuxiao commented 1 year ago

版本号:1.6.12(1) rime:1.8.5 在微信输入enter上滑,不会换行。信息发出后为 乱码方框

我刚测试是正常的,iOS 16.5, 微信 8.0.37, 仓:1.6.13 仓1.6.12应该也是正常的,由\r\n改为\r,就是在12版本上改的。 RPReplay_Final1686194417.MP4

我刚把输入法更新到1.6.13,微信更新到了8.0.37,iOS16.5 你在微信自己的界面看起来换行了。但是发送到对方,他看起来没有换行,就中间是个小方框

我刚测试发送的接收方微信显示也是正常的。接收方微信Android 8.0.33版本。

另外如果你自己的发送页面可以显示正常,那就说明没有问题。可能是对方微信的问题。

host2318 commented 1 year ago

版本号:1.6.12(1) rime:1.8.5 在微信输入enter上滑,不会换行。信息发出后为 乱码方框

我刚测试是正常的,iOS 16.5, 微信 8.0.37, 仓:1.6.13

仓1.6.12应该也是正常的,由\r\n改为\r,就是在12版本上改的。

RPReplay_Final1686194417.MP4

重现方式二:在手机上发出带换行的消息,到电脑上查看此消息,也是不换行的状态

版本号:1.6.12(1) rime:1.8.5 在微信输入enter上滑,不会换行。信息发出后为 乱码方框

我刚测试是正常的,iOS 16.5, 微信 8.0.37, 仓:1.6.13 仓1.6.12应该也是正常的,由\r\n改为\r,就是在12版本上改的。 RPReplay_Final1686194417.MP4

我刚把输入法更新到1.6.13,微信更新到了8.0.37,iOS16.5 你在微信自己的界面看起来换行了。但是发送到对方,他看起来没有换行,就中间是个小方框

我刚测试发送的接收方微信显示也是正常的。接收方微信Android 8.0.33版本。

另外如果你自己的发送页面可以显示正常,那就说明没有问题。可能是对方微信的问题。

找到问题所在了,我发出消息,对方在电脑看(朋友没有说清楚抱歉)是电脑版本的微信显示有问题。Windows10 x64 ,微信3.9.5.65,会出现换行不正确显示问题。

另外刚刚测试完毕macOS 12.6.5 微信3.8.0,显示正常

imfuxiao commented 1 year ago

版本号:1.6.12(1) rime:1.8.5 在微信输入enter上滑,不会换行。信息发出后为 乱码方框

我刚测试是正常的,iOS 16.5, 微信 8.0.37, 仓:1.6.13 仓1.6.12应该也是正常的,由\r\n改为\r,就是在12版本上改的。 RPReplay_Final1686194417.MP4

重现方式二:在手机上发出带换行的消息,到电脑上查看此消息,也是不换行的状态

版本号:1.6.12(1) rime:1.8.5 在微信输入enter上滑,不会换行。信息发出后为 乱码方框

我刚测试是正常的,iOS 16.5, 微信 8.0.37, 仓:1.6.13 仓1.6.12应该也是正常的,由\r\n改为\r,就是在12版本上改的。 RPReplay_Final1686194417.MP4

我刚把输入法更新到1.6.13,微信更新到了8.0.37,iOS16.5 你在微信自己的界面看起来换行了。但是发送到对方,他看起来没有换行,就中间是个小方框

我刚测试发送的接收方微信显示也是正常的。接收方微信Android 8.0.33版本。 另外如果你自己的发送页面可以显示正常,那就说明没有问题。可能是对方微信的问题。

找到问题所在了,我发出消息,对方在电脑看(朋友没有说清楚抱歉)是电脑版本的微信显示有问题。Windows10 x64 ,微信3.9.5.65,会出现换行不正确显示问题。

另外刚刚测试完毕macOS 12.6.5 微信3.8.0,显示正常

Windows系统换行符号为\n,类Unix系统为\r。所以显示是有异常。

之前发送的是\r\n, 但是iOS删除存在问题, 需要删除两次,这个暂时无法处理……回头看看如果能解决两次删除的问题,就把\r在换回到\r\n。

groverlynn commented 1 year ago

版本号:1.6.12(1) rime:1.8.5 在微信输入enter上滑,不会换行。信息发出后为 乱码方框

我刚测试是正常的,iOS 16.5, 微信 8.0.37, 仓:1.6.13 仓1.6.12应该也是正常的,由\r\n改为\r,就是在12版本上改的。 RPReplay_Final1686194417.MP4

重现方式二:在手机上发出带换行的消息,到电脑上查看此消息,也是不换行的状态

版本号:1.6.12(1) rime:1.8.5 在微信输入enter上滑,不会换行。信息发出后为 乱码方框

我刚测试是正常的,iOS 16.5, 微信 8.0.37, 仓:1.6.13 仓1.6.12应该也是正常的,由\r\n改为\r,就是在12版本上改的。 RPReplay_Final1686194417.MP4

我刚把输入法更新到1.6.13,微信更新到了8.0.37,iOS16.5 你在微信自己的界面看起来换行了。但是发送到对方,他看起来没有换行,就中间是个小方框

我刚测试发送的接收方微信显示也是正常的。接收方微信Android 8.0.33版本。 另外如果你自己的发送页面可以显示正常,那就说明没有问题。可能是对方微信的问题。

找到问题所在了,我发出消息,对方在电脑看(朋友没有说清楚抱歉)是电脑版本的微信显示有问题。Windows10 x64 ,微信3.9.5.65,会出现换行不正确显示问题。 另外刚刚测试完毕macOS 12.6.5 微信3.8.0,显示正常

Windows系统换行符号为\n,类Unix系统为\r。所以显示是有异常。

之前发送的是\r\n, 但是iOS删除存在问题, 需要删除两次,这个暂时无法处理……回头看看如果能解决两次删除的问题,就把\r在换回到\r\n。

win的換行符是CRLF(\r\n,即U+000D U+000A),unix的換行符是LF(\n,即U+000A),MacOS 9的換行符是CR(\r,即U+000D)。Apple各平臺現在也認U+2028換行符和U+2029分段符。非win平臺用\n就沒問題 win的CR是打字機撥回行首,LF是打字機下移一行。所以真正的換行是LF(\n)

imfuxiao commented 1 year ago

对的,但仓是在apple系统下,只能使用一种格式,即\r,无法根据对方软件系统来区分使用哪种换行方式。

groverlynn commented 1 year ago

对的,但仓是在apple系统下,只能使用一种格式,即\r,无法根据对方软件系统来区分使用哪种换行方式。

apple用\n啊,MacOS 9是二十年前的老古董了。關鍵是\n在win平台基本都會被當成\r\n處理,但是\r是有可能真的只回行首不換行的。

imfuxiao commented 10 months ago

懵逼了,不能使用 \n,是因为在不同的聊天软件中对 \n 的处理是不同的。

比如 QQ 中 \n 直接就发送了,但是在微信中却可以换行。