Skip to content
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

Open
AdamsShen opened this issue Jan 17, 2019 · 19 comments
Open

末尾空格 #1884

AdamsShen opened this issue Jan 17, 2019 · 19 comments
Labels
feature request Categorizes issue as related to a new feature. help wanted kind/question Categorizes issue when someone want to know answer of a question

Comments

@AdamsShen
Copy link

apollo配置项如何让末尾空格起作用? 如"abc空格空格",读取出来后仍然是原样,而不是只剩下"abc"字符串了

@kezhenxu94
Copy link
Member

@AdamsShen 怎么会有这种使用场景? 能举个例子吗

@AdamsShen
Copy link
Author

项目里面需要做一个字符串分隔符操作, 现在设置的分隔符为", "(逗号空格空格),为了方便更换,所以配置在apollo配置项中,但是现在无法设置,只能在程序中写死

@kezhenxu94
Copy link
Member

@AdamsShen 如果是 Java 的 String#split 方法话, 配置 ,\\s\\s 是不是就可以了? 该方法参数是支持正则表达式的

@AdamsShen
Copy link
Author

是Java 使用的是repalceAll方法, 第二个参数是我要使用的分隔符,第二个参数不支持正则表达式,如将字符串"a;b;c"中的所有";"替换为分隔符("逗号空格空格"),而目前是分隔符配置在apollo配置中,所以存在上述问题

@kezhenxu94
Copy link
Member

感觉这设计有点奇怪,你怎么看 @nobodyiam

@nobodyiam
Copy link
Member

看了一下是前端发起请求到后端时就trim掉了,@lepdou 还记得为啥会trim吗?

@AdamsShen
Copy link
Author

@kezhenxu94 @nobodyiam 配置的时候key=value的形式, key或者value前后有空格 你们都会做trim处理,其实没有问题,我现在有个建议,如果配置的value最后字符或者去掉空格后第一个字符为'\'(转义符号),获取得到值时就去掉该'\'保留剩下的值,如何需要值中有\,我们可以使用'\\'来转义代替, 你们觉得可行吗? 希望给点意见 并解决这个问题!谢谢!

@nobodyiam
Copy link
Member

这个规则看上去有点定制了,等于是让apollo制定了一个特殊的规则:输入\<whitespace>,保存<whitespace>,对配置中心而言,应该还是要尽可能的保持理解简单

@AdamsShen
Copy link
Author

@nobodyiam 那您觉得这是个问题吗? 如果是 应该怎么解决呢? 我们项目其实是有很多其他的方案解决这个问题,比如加密下或者用其他字符替代空格,然后读取出来再解密或者替代回来等等,但是总觉得都不太合理,不是解决问题的最优方案,所以还是希望从apollo的配置上根本解决这个问题,所以希望您这边能有一个好的解决方案,谢谢

@nobodyiam
Copy link
Member

页面上保存的时候加一个选项,是否保留尾空格?

@AdamsShen
Copy link
Author

@nobodyiam 我觉得这样也可以呀 但是如果想要保留value前面的空格呢?怎么处理呢?

@nobodyiam
Copy link
Member

应该是一样的吧,比如加个选项 - 是否启动去除多余空格,默认是勾上之类的?

@heobo
Copy link

heobo commented Mar 4, 2019

像spring-boot 一样 约定双引号或单引号的情况下保留原串,如何?

@nobodyiam
Copy link
Member

@heobo 目前apollo的做法是原样返回,所以加了双引号,空格肯定是保留了,不过双引号也会保留

@DeanJi
Copy link

DeanJi commented Mar 15, 2019

请问这个空格问题有解决方案了吗?目前apollo会trim掉key和value前后空格,中间的空格不会trim,但是现实场景中,确实有key或value前后需要空格的变态做法,之前宋哥建议增加是否保存空格的建议实现了吗?

@heobo
Copy link

heobo commented Mar 16, 2019

@heobo 目前apollo的做法是原样返回,所以加了双引号,空格肯定是保留了,不过双引号也会保留

目前apollo 的做法并没有原样返回,而是删除了后面的空格。

@heobo
Copy link

heobo commented Mar 16, 2019

建议有引号的时候对引号里面的内容原样返回,如果配置内容也需要引号,可以用单、双引号的配合实现,复杂的情况用转义字符。

比如 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
Copy link
Member

这个考虑在编辑时增加一个选项来控制是否自动去掉末尾空格吧

@Anilople Anilople added feature request Categorizes issue as related to a new feature. kind/question Categorizes issue when someone want to know answer of a question labels Dec 23, 2020
@czd890
Copy link
Contributor

czd890 commented Jan 6, 2023

@nobodyiam 这个有计划支持么, heobo的建议挺好的. 支持用双引号.

key = "  value  "
"  key  " = "  value  "

@github-project-automation github-project-automation bot moved this to UI(only change UI) in Apollo Aug 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Categorizes issue as related to a new feature. help wanted kind/question Categorizes issue when someone want to know answer of a question
Projects
Status: UI(only change UI)
Development

No branches or pull requests

7 participants