What every symbol in copied ChatGPT text means (and how to remove it)
By the AI Text Formatter team ·
Copy an answer out of ChatGPT, paste it into an email, a form or a document, and it sprouts symbols that were invisible in the chat window: double asterisks, hashes, vertical bars, backticks, and sometimes stranger things like 【12†source】 or a block that starts with <think>. None of it is random. Every symbol is one of three things — markdown, citation residue, or a character you cannot see — and each has a one-paste fix. This is the glossary.
Part 1: markdown — the formatting layer
ChatGPT writes in markdown, a plain-text shorthand that the chat window renders into bold, headings and lists. Copy the text and you get the shorthand, not the rendering. Anywhere that does not read markdown shows it literally.
**double asterisks**
Bold. **Key point:** renders as a bold lead-in in the chat and arrives as six characters of asterisks everywhere else. Two fixes, depending on where the text is going: strip the markers and lose the bold (plain-text destinations), or convert the bold to something the destination can show — real bold in Word or Docs, Unicode bold on LinkedIn and other social boxes that have no bold button.
*single asterisks* and _underscores_
Italic. Less common in ChatGPT output than bold, and worth knowing because a single asterisk is also multiplication and an underscore is also part of snake_case names. The strip markdown tool removes the italic markers and leaves 5*3*2 and my_file_name alone.
#, ##, ### at the start of a line
Headings, one to six hashes for levels one to six. In a document they should become heading styles; in plain text the hashes just go and the heading becomes a line on its own. A # inside a code block is a comment, not a heading, which is why a careful stripper protects code before it touches anything.
-, * or + at the start of a line
Bullets. A hyphen bullet is readable as plain text; an asterisk bullet looks like a stray symbol. Converters turn them into real list items (documents) or • characters (plain-text boxes), or normalise them to hyphens.
1., 2., 3.
Numbered lists. These are already plain text and survive anywhere. The only quirk is that models restart numbering after a paragraph break, which word processors then merge or renumber.
Backticks and code fences
Code. A single pair of backticks marks inline code (npm install); a line of three backticks opens or closes a code block, often with a language name after it. Strip the backticks and keep the code exactly as written — including any # or ** inside it, which are not markdown there.
| vertical bars and a row of |---|---|
A table: one line per row, cells divided by bars, a row of dashes under the header. Pasted into Excel or Sheets it lands as one column of text. The ChatGPT table to Excel converter reads the bars as columns and types the numbers; as plain text, a table is best turned into tab-separated rows.
[text](https://…) and <https://…>
Links. The chat window shows the text as a clickable link; copied, you get both halves. The readable plain-text form is text (https://…); in a document the converter makes it a real link again.
--- or *** on a line by itself
A horizontal rule — a section divider. It carries no content and is simply removed.
\*, \_, \#
Escapes: a backslash before a symbol that would otherwise be read as markdown. The backslash goes and the symbol stays.
<br>, &, <b>
Stray HTML, which some answers carry inside tables or quoted content. <br> is a line break, & is an ampersand, and the tags are unwrapped.
Part 2: citation residue
When ChatGPT has searched the web or read a file, it marks the sentences it drew from a source, and those marks come along when you copy.
【12†source】 and 【4:0†file.pdf】
ChatGPT's own citation marker, in the fullwidth brackets it uses for browsing and file-search answers. Pure residue; it means nothing outside the chat.
:contentReference[oaicite:0]{index=0} and [oaicite:3]
A citation tag that occasionally leaks into answers copied from Projects or the API. Also pure residue.
citeturn0search0, sometimes wrapped in invisible characters
ChatGPT's internal citation token, which shows up in copied text when something has gone wrong in the rendering. It can be glued to the end of a word with no space. Residue.
[1], [2][3], [4, 5]
Numeric citations in the Perplexity style, which ChatGPT also uses in some search answers. Ambiguous — [1] can be a legitimate reference you want to keep — which is why the remove citations option is a toggle rather than always on. A [1] Source line in a reference list keeps its number; only the markers attached to sentences are removed.
[^1]
A markdown footnote reference, with its definition [^1]: … at the end. Residue in most destinations.
<think> … </think>
Not ChatGPT, but it arrives in the same pastes: the reasoning block that DeepSeek and other thinking models produce before the answer. Several paragraphs of the model deliberating, wrapped in tags. Removed as a block.
Part 3: the characters you cannot see
These are the ones people search for as "weird spacing" and "random boxes", because they have no visible symbol at all — only effects.
Zero-width space (U+200B) and friends
Invisible characters that carry no width. They break word counts, searches and string comparisons, and some apps render them as a small box. The invisible character remover lists the whole family; every tool on this site strips them automatically.
Non-breaking space (U+00A0) and narrow no-break space (U+202F)
Look like spaces, behave like glue. ChatGPT puts a narrow no-break space between a number and its unit — "3 PM", "5 km" — and Word, Outlook and Google Docs then refuse to wrap the line there, which reads as weird spacing. Both are normalised to an ordinary space.
Em dash (—), en dash (–), curly quotes (“ ”), ellipsis (…)
Visible, but worth a mention because they are the typographic tells: keyboards do not produce them, and a cluster of them reads as generated. The em dash remover replaces the dashes and straightens the quotes; number ranges like 2019–2024 are left alone.
Which tool for which symbols
For plain text with everything gone — markdown, citations, reasoning blocks, hidden characters — remove ChatGPT formatting is the one-paste answer. For markdown from any source, strip markdown. For a document that should keep its headings and bold, the ChatGPT to Word and Google Docs converters. For a table, ChatGPT table to Excel. And for text from Claude, Gemini, Perplexity, DeepSeek, Copilot or Grok — each of which leaves a slightly different trail — the tools hub has a page per assistant. All of them run in your browser; nothing is uploaded.