Problems with deprecations of islower, lowercase, isupper, uppercase

Please stop misrepresenting things totally. Many people here may not be aware of the facts of the situation
(for which I have ample evidence).

I didn’t change anything AT ALL in the way strings were handled prior to my starting to contribute to Julia back in April 2015, except for fixing (some) of the many bugs, and greatly improving the performance of conversions.

In v0.3.x, you had ASCIIString, UTF8String, UTF16String, and UTF32String.
See the following definition: https://github.com/JuliaLang/julia/blob/release-0.3/base/utf8.jl#L163, i.e.

convert(::Type{UTF8String}, a::Array{Uint8,1}) = is_valid_utf8(a) ? UTF8String(a) : error("invalid UTF-8 sequence")

The philosophy then was that if you converted something to a UTF8String, it was checked for validity.
I did not change that one bit.
I did fix bugs: such as #10919 (my very first Julia PR), also found a very serious problem in #10958, in my first few weeks after I first saw Julia.

@stevengj said at the time, about #10958:

Whether we should accept (and silently convert) modified UTF-8 to standard UTF-8 is a separate issue; I tend to agree, but let’s keep that out of this discussion. After reading the RFCs, I agree that we shouldn’t produce the overlong NUL encoding ourselves

which Jeff also agreed with.

Also: Steven brought up the following back then, which may still be a problem:

Some of the functions in utf8.c seem to assume valid UTF-8, which may not be produced e.g. by bytestring(ptr, len).

Other string related things I fixed that were included in the v0.4 release:

and added a lot of unit tests (char and string functions had been very poorly covered previously):