过长的字符串,被自动添加换行符\n

在使用AndroidStudio进行Base64加密时,发现加密后的字符串在过长时会被自动添加换行符,导致服务端解析失败。本文记录了解决此问题的方法,即在提交前手动去除换行符。

小问题,做下记录。

对 json 数据进行了 Base64 加密,然后将加密后的字符串提交到接口,服务端解析失败(服务端 .NET)。

对比后发现,字符串的某些位置被自动添加了换行符\n,应该是 Android Studio 对过长字符串进行了处理。

所以提交前需要手动去除换行符 \n 。

正常加密后的字符串:

eyJ2ZXIiOiIxLjAuNiIsImRhdGEiOnsicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUw
NTdmMjBmODgzZSIsInVzZXJuYW1lIjoienk4In0sImN1c3RvbWVyaWQiOiIiLCJpc1ciOiIiLCJ1
c2VyaWQiOiIiLCJhY2N0eXBlIjoiIiwicGxhdGZvcm0iOiJhcHAiLCJ1c2VybmFtZSI6IiIsInRv
a2VuIjoiIn0=

被添加了换行符的加密后的字符串:

eyJ2ZXIiOiIxLjAuNiIsImRhdGEiOnsicGFzc3dvcmQiOiJlMTBhZGMzOTQ5YmE1OWFiYmU1NmUw\n
NTdmMjBmODgzZSIsInVzZXJuYW1lIjoienk4In0sImN1c3RvbWVyaWQiOiIiLCJpc1ciOiIiLCJ1\n
c2VyaWQiOiIiLCJhY2N0eXBlIjoiIiwicGxhdGZvcm0iOiJhcHAiLCJ1c2VybmFtZSI6IiIsInRv\n
a2VuIjoiIn0=

替换换行符 \n:

base64Result.replace("\n", "")

 

在 WinForm 的 `TextBox` 中,当字符串过长添加换行符可以采用以下几种方法: ### 方法一:手动插入换行符 在代码中,当字符串达到一定长度手动插入换行符 `\r\n`。示例代码如下: ```csharp string longString = "这是一个非常长的字符串,需要进行换行理。这是一个非常长的字符串,需要进行换行理。这是一个非常长的字符串,需要进行换行理。"; int maxLength = 20; string result = ""; for (int i = 0; i < longString.Length; i += maxLength) { if (i + maxLength < longString.Length) { result += longString.Substring(i, maxLength) + "\r\n"; } else { result += longString.Substring(i); } } textBox1.Text = result; ``` 此方法通过循环截取字符串,在达到指定长度添加 `\r\n` 作为换行符,适合手动控制换行位置的场景。 ### 方法二:使用 `StringBuilder` 插入换行符 使用 `StringBuilder` 可以更高效地字符串拼接,示例代码如下: ```csharp string longString = "这是一个非常长的字符串,需要进行换行理。这是一个非常长的字符串,需要进行换行理。这是一个非常长的字符串,需要进行换行理。"; int maxLength = 20; StringBuilder sb = new StringBuilder(); for (int i = 0; i < longString.Length; i += maxLength) { if (i + maxLength < longString.Length) { sb.Append(longString.Substring(i, maxLength)).Append("\r\n"); } else { sb.Append(longString.Substring(i)); } } textBox1.Text = sb.ToString(); ``` `StringBuilder` 避免了字符串拼接的性能损耗,适合理较长的字符串。 ### 方法三:设置 `TextBox` 的自动换行属性 若想让 `TextBox` 自动根据控件宽度换行,可设置 `TextBox` 的 `WordWrap` 属性为 `true`,示例代码如下: ```csharp textBox1.WordWrap = true; textBox1.Multiline = true; textBox1.Text = "这是一个非常长的字符串,需要进行换行理。这是一个非常长的字符串,需要进行换行理。这是一个非常长的字符串,需要进行换行理。"; ``` 设置 `WordWrap` 为 `true` 后,`TextBox` 会根据自身宽度自动换行,适合不希望手动控制换行位置的场景。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值