Unexpected result of RTF line ending conversion
If txtLog is a RichTextBox control: Dim text = "hi" & vbCrLf Debug.WriteLine("t:" & text.Length) ' --> 4, as expected txtLog.Text = text Debug.WriteLine("tL:" & txtLog.TextLength) ' --> 3. muh?! :( Having looked at the RTF spec , the end of a paragraph is notated as \par , which is neither CR nor LF . This makes sense since RTF is markup language; like in HTML, line endings have little meaning on their own. So presumably, on writing into the RichTextBox , my line ending is being encoded into \par . And then, on extraction, the \par is being translated back to a real line ending for use. It