I understand URL should be case-sensitive, e.g.
http://www.example.com/test.php
http://www.example.com/TEST.php
Should be two things.
But should the UTF-8 also be case sensitive, e.g. ?
http://zh.wikipedia.org/wiki/%E8%A7%82%E6%B5%8B%E5%A4%A9%E6%96%87%E5%AD%A6
vs
http://zh.wikipedia.org/wiki/%e8%a7%82%e6%b5%8b%e5%a4%a9%e6%96%87%e5%ad%a6
Should they be equal?
The reason I ask is: Googlebot keep using the upper case viarant of the URL, although my site is all using lower case url.
I can’t speak with 100% authority on this question, but if you stop to think about how the URL would be stored in a search index, or table of urls, or any of the myriad data stores Google uses, I can’t imagine that the URLs would not be normalized in some fashion.
Any kind of normalization should decode the URL into a string, so there should be no difference. I would be surprised if Google stored URLs with the % encodings. They can store text in UTF-8; the percent signs are there to make things visible to humans.
Google “use” of the uppercase variant is simply for display and reporting purposes, I would guess. I do not think the URL encodings are stored at all.