+@node Non-ASCII in Strings
+@subsubsection Non-@acronym{ASCII} Characters in Strings
+
+ You can include a non-@acronym{ASCII} international character in a string
+constant by writing it literally. There are two text representations
+for non-@acronym{ASCII} characters in Emacs strings (and in buffers): unibyte
+and multibyte. If the string constant is read from a multibyte source,
+such as a multibyte buffer or string, or a file that would be visited as
+multibyte, then the character is read as a multibyte character, and that
+makes the string multibyte. If the string constant is read from a
+unibyte source, then the character is read as unibyte and that makes the
+string unibyte.
+
+ You can also represent a multibyte non-@acronym{ASCII} character with its
+character code: use a hex escape, @samp{\x@var{nnnnnnn}}, with as many
+digits as necessary. (Multibyte non-@acronym{ASCII} character codes are all
+greater than 256.) Any character which is not a valid hex digit
+terminates this construct. If the next character in the string could be
+interpreted as a hex digit, write @w{@samp{\ }} (backslash and space) to
+terminate the hex escape---for example, @w{@samp{\x8e0\ }} represents
+one character, @samp{a} with grave accent. @w{@samp{\ }} in a string
+constant is just like backslash-newline; it does not contribute any
+character to the string, but it does terminate the preceding hex escape.
+
+ You can represent a unibyte non-@acronym{ASCII} character with its
+character code, which must be in the range from 128 (0200 octal) to
+255 (0377 octal). If you write all such character codes in octal and
+the string contains no other characters forcing it to be multibyte,
+this produces a unibyte string. However, using any hex escape in a
+string (even for an @acronym{ASCII} character) forces the string to be
+multibyte.
+
+ @xref{Text Representations}, for more information about the two
+text representations.
+
+@node Nonprinting Characters
+@subsubsection Nonprinting Characters in Strings
+
+ You can use the same backslash escape-sequences in a string constant
+as in character literals (but do not use the question mark that begins a
+character constant). For example, you can write a string containing the
+nonprinting characters tab and @kbd{C-a}, with commas and spaces between
+them, like this: @code{"\t, \C-a"}. @xref{Character Type}, for a
+description of the read syntax for characters.
+
+ However, not all of the characters you can write with backslash
+escape-sequences are valid in strings. The only control characters that
+a string can hold are the @acronym{ASCII} control characters. Strings do not
+distinguish case in @acronym{ASCII} control characters.
+
+ Properly speaking, strings cannot hold meta characters; but when a
+string is to be used as a key sequence, there is a special convention
+that provides a way to represent meta versions of @acronym{ASCII}
+characters in a string. If you use the @samp{\M-} syntax to indicate
+a meta character in a string constant, this sets the
+@tex
+@math{2^{7}}
+@end tex
+@ifnottex
+2**7
+@end ifnottex
+bit of the character in the string. If the string is used in
+@code{define-key} or @code{lookup-key}, this numeric code is translated
+into the equivalent meta character. @xref{Character Type}.
+
+ Strings cannot hold characters that have the hyper, super, or alt
+modifiers.
+
+@node Text Props and Strings
+@subsubsection Text Properties in Strings
+
+ A string can hold properties for the characters it contains, in
+addition to the characters themselves. This enables programs that copy
+text between strings and buffers to copy the text's properties with no
+special effort. @xref{Text Properties}, for an explanation of what text
+properties mean. Strings with text properties use a special read and
+print syntax: