The charcters you mention are present in Unicode. Here are their character codes in hexadecimal and how they are encoded in UTF-8:
? ? ? ? ? ? ? ? ? ? ü ü
Code: 00c7 00e7 011e 011f 0130 0131 00d6 00f6 015e 015f 00dc 00fc
UTF8: c3 87 c3 a7 c4 9e c4 9f c4 b0 c4 b1 c3 96 c3 b6 c5 9e c5 9f c3 9c c3 bc
This means that if you write for example the bytes 0xc4 0x9e into a file you have written the character ?, and any software tool that understands UTF-8 must read it back as ?.
Update: For correct alphabetic order and case conversions in Turkish you have to use a library that understand locales, just like for any other natural language. For example in Java:
Locale tr = new Locale("TR","tr"); // Turkish locale
print("??????????üü".toUpperCase(tr)); // ?????I????üü
print("??????????üü".toLowerCase(tr)); // ????i?????üü
Notice how i in uppercase becomes ?, and I in lowercase becomes ?. You don't say which programming language you use but surely its standard library supports locales, too.
Unicode defines the code points and certain properties for each character (for example, if it's a digit or a letter, for a letter if it's uppercase, lowercase, or titlecase), and certain generic algorithms for dealing with Unicode text (e.g. how to mix right-to-left text and left-to-right text). Alphabetic order and correct case conversion are defined by national standardization bodies, like Institute of Languages of Finland in Finland, Real Academia Espa?ola in Spain, independent of Unicode.
Update 2:
The test ((ch&0x20)==ch)
for lower case is broken for most languages in the world, not just Turkish. So is the algorithm for converting upper case to lower case you mention. Also, the test for being a letter is incorrect: in many languages Z is not the last letter of the alphabet. To work with text correctly you must use library functions that have been written by people who know what they are doing.
Unicode is supposed to be universal. Creating national and language specific variants of encodings is what lead us to the mess that Unicode is trying to solve. Unfortunately there is no universal standard for ordering characters. For example in English a = ? < z, but in Swedish a < z < ?. In German ü is equivalent to U by one standard, and to UE by another. In Finnish ü = Y. There is no way to order code points so that the ordering would be correct in every language.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…