<p>A few days ago, I asked <a href="https://stackoverflow.com/questions/242577/c-what-is-string-really-good-for">why its not possible to store binary data, such as a jpg file into a string variable</a>.</p>

<p>Most of the answers I got said that string is used for textual information such as what I'm writing now.</p>

<p>What is considered textual data though? Bytes of a certain nature represent a jpg file and those bytes could be represented by character byte values...I think. So when we say strings are for textual information, is there some sort of range or list of characters that aren't stored?</p>

<p>Sorry if the question sounds silly. Just trying to 'get it'</p>

Depends on the language. For example in Python string types (str) are really byte arrays, so they can indeed be used for binary data.
In C the NULL byte is used for string termination, so a sting cannot be used for arbitrary binary data, since binary data could contain null bytes.
In C# a string is an array of chars, and since a char is basically an alias for 16bit int, you can probably get away with storing arbitrary binary data in a string. You might get errors when you try to display the string (because some values might not actually correspond to a legal unicode character), and some operations like case conversions will probably fail in strange ways.
In short it might be possible in some langauges to store arbitrary binary data in strings, but they are not designed for this use, and you may run into all kinds of unforseen trouble. Most languages have a byte-array type for storing arbitrary binary data.