例如,我有字符串:
<Url class="class">http://www.ccc.com/Files/thumbnails/Gone Dark.jpg</Url>
我想将url标记内的所有空格替换为%20
<Url class="class">http://www.ccc.com/Files/thumbnails/Gone%20Dark.jpg</Url>
请注意,<Url class="class">
中的空格保持不变,而Gone Dark.jpg
中的空格已更改为Gone%20Dark.jpg
编辑:值在SQL数据库中,我需要对它们进行编码。
REPLACE(path, strPtrn, strDst)
对此不够强大(或者我认为)。
答案 0 :(得分:1)
您应该使用URLEncoder类中的其他方法:URLEncoder.encode(String, String)
。第一个参数是要编码的String;第二个是要使用的字符编码的名称(例如,“UTF-8”)。
或
你应该尝试这样的事情
String url = "http://example.com/query?q=" + URLEncoder.encode("random word £500 bank $", "ISO-8859-1"); // Or "UTF-8".
答案 1 :(得分:1)
我在1分钟内写了这篇文章,没时间考虑太多(我在工作),只是给你一个提示
http://sqlfiddle.com/#!6/d41d8/5194
declare @input nvarchar(max) = '<Url class="class">http://www.ccc.com/Files/thumbnails/Gone Dark.jpg</Url>'
declare @opentag nvarchar(256) = SUBSTRING(@input, 1, CHARINDEX('>', @input))
declare @closetag nvarchar(256) = SUBSTRING(@input, CHARINDEX('</',@input), 6)
declare @data nvarchar(max) = SUBSTRING(@input, CHARINDEX('>', @input)+1, LEN(@input)-LEN(@opentag)-LEN(@closetag))
select @opentag + REPLACE(@data, ' ', '%20') + @closetag
答案 2 :(得分:0)
如果您使用的是Java,那么您可以使用URLEncoder.encode()
方法对URL进行编码,然后将其存储在数据库中。这样,空格和特殊字符将被相应处理。
答案 3 :(得分:0)
这是一个不使用变量的人 您可以一次处理表格中的所有记录
SELECT
LEFT(url,CHARINDEX('>',url))+
REPLACE(SUBSTRING(url,
CHARINDEX('>',url)+1,
CHARINDEX('</',url)-CHARINDEX('>',url)-1),
' ', '%20') +
RIGHT(url,LEN(url) - CHARINDEX('</',url) + 1)
FROM t1