-
-
Notifications
You must be signed in to change notification settings - Fork 10.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
末尾空格 #1884
Comments
@AdamsShen 怎么会有这种使用场景? 能举个例子吗 |
项目里面需要做一个字符串分隔符操作, 现在设置的分隔符为", "(逗号空格空格),为了方便更换,所以配置在apollo配置项中,但是现在无法设置,只能在程序中写死 |
@AdamsShen 如果是 Java 的 |
是Java 使用的是repalceAll方法, 第二个参数是我要使用的分隔符,第二个参数不支持正则表达式,如将字符串"a;b;c"中的所有";"替换为分隔符("逗号空格空格"),而目前是分隔符配置在apollo配置中,所以存在上述问题 |
感觉这设计有点奇怪,你怎么看 @nobodyiam |
看了一下是前端发起请求到后端时就trim掉了,@lepdou 还记得为啥会trim吗? |
@kezhenxu94 @nobodyiam 配置的时候key=value的形式, key或者value前后有空格 你们都会做trim处理,其实没有问题,我现在有个建议,如果配置的value最后字符或者去掉空格后第一个字符为'\'(转义符号),获取得到值时就去掉该'\'保留剩下的值,如何需要值中有\,我们可以使用'\\'来转义代替, 你们觉得可行吗? 希望给点意见 并解决这个问题!谢谢! |
这个规则看上去有点定制了,等于是让apollo制定了一个特殊的规则:输入 |
@nobodyiam 那您觉得这是个问题吗? 如果是 应该怎么解决呢? 我们项目其实是有很多其他的方案解决这个问题,比如加密下或者用其他字符替代空格,然后读取出来再解密或者替代回来等等,但是总觉得都不太合理,不是解决问题的最优方案,所以还是希望从apollo的配置上根本解决这个问题,所以希望您这边能有一个好的解决方案,谢谢 |
页面上保存的时候加一个选项,是否保留尾空格? |
@nobodyiam 我觉得这样也可以呀 但是如果想要保留value前面的空格呢?怎么处理呢? |
应该是一样的吧,比如加个选项 - 是否启动去除多余空格,默认是勾上之类的? |
像spring-boot 一样 约定双引号或单引号的情况下保留原串,如何? |
@heobo 目前apollo的做法是原样返回,所以加了双引号,空格肯定是保留了,不过双引号也会保留 |
请问这个空格问题有解决方案了吗?目前apollo会trim掉key和value前后空格,中间的空格不会trim,但是现实场景中,确实有key或value前后需要空格的变态做法,之前宋哥建议增加是否保存空格的建议实现了吗? |
目前apollo 的做法并没有原样返回,而是删除了后面的空格。 |
建议有引号的时候对引号里面的内容原样返回,如果配置内容也需要引号,可以用单、双引号的配合实现,复杂的情况用转义字符。 比如 bash export a=b #`b`
export a='hello "world" ' #`hello "world" `
export json='{"a":123,"b":"\""}' #`{"a":123,"b":"\""}`
export json="{\"a\":123,\"b\":\"\\\"\"}" #`{"a":123,"b":"\""}` |
这个考虑在编辑时增加一个选项来控制是否自动去掉末尾空格吧 |
@nobodyiam 这个有计划支持么, heobo的建议挺好的. 支持用双引号.
|
apollo配置项如何让末尾空格起作用? 如"abc空格空格",读取出来后仍然是原样,而不是只剩下"abc"字符串了
The text was updated successfully, but these errors were encountered: