Passer au contenu
Se connecter
whatsapp-exportchat-txttext-editorutf-8encodingattachment-markerswhatsapp-analysis

How to Open a WhatsApp _chat.txt File (Without Garbled Text)

Open WhatsApp _chat.txt with Notepad on Windows or TextEdit on Mac. If characters look garbled, reopen it as UTF-8 or use a dedicated text editor.

Par André Daniel3 mai 20267 min read
Dans cet article

Open `_chat.txt` with Notepad on Windows or TextEdit on Mac. If the characters look garbled, reopen the file as UTF-8 or use VS Code, Notepad++ or BBEdit. The file sits inside the WhatsApp export ZIP beside any media you included.

Vous avez déjà votre .zip ? C'est exactement ce que ThreadRecap lit.

Analyser votre conversation

What _chat.txt actually contains

WhatsApp stores chat logs in plain text format. Every line that represents a user message follows the same three-part pattern:

```

[DD/MM/YYYY, HH:MM:SS] Sender Name: message body

```

The bracketed section is the timestamp, formatted according to the device locale at the time of export, so you may see `MM/DD/YYYY` on US-locale devices instead. After the closing bracket comes a space, the sender's display name as it appeared in their contacts at export time, a colon, and then the message text.

Beyond user messages, the file contains two other line types:

  • System event lines. These record group changes such as a participant joining, leaving, or a group name being updated. They carry a timestamp but no sender name, and the phrasing is generated by WhatsApp itself.
  • Multi-line message continuations. If a sender typed a message with line breaks, the continuation lines appear without a timestamp header. Any parser or reader needs to account for this or it will miscount messages.

The file contains every message and timestamp from the conversation. Nothing is summarised or omitted on WhatsApp's side, which is what makes it useful as a raw record but also what makes it hard to read manually for anything longer than a short personal chat.

For a broader look at what the export package contains beyond the text file, see WhatsApp export formats explained.

Encoding pitfalls

UTF-8 and the Byte Order Mark

WhatsApp uses UTF-8 encoding for `_chat.txt` exports. UTF-8 can represent every Unicode character, so emoji, Arabic, Chinese, and accented Latin characters all appear correctly in a properly configured editor. The problem arises with the Byte Order Mark (BOM).

A BOM is a three-byte sequence, `0xEF 0xBB 0xBF`, that may appear at the very start of a UTF-8 file. The Unicode standard permits its use but does not require or recommend it. Its only purpose is to signal that the stream is UTF-8 encoded. In practice, some WhatsApp versions on some devices prepend the BOM and others do not.

Editors that do not recognise the BOM render it as a visible character, often a small box or a question mark, at the top of the file. This is cosmetic but it can also break scripts or parsers that try to match the first line against a timestamp pattern, because the BOM bytes precede the opening bracket.

Fix: Open the file in VS Code, Notepad++, or BBEdit. Each of these editors detects and displays the encoding in the status bar. In Notepad++ you can re-save as "UTF-8 without BOM" from the Encoding menu. In VS Code, click the encoding label in the bottom-right corner and choose "Save with encoding", then select UTF-8.

Windows line endings

If the export was created on an Android device and you open it on a Mac or Linux system using a basic viewer, you may see `^M` characters at the end of lines or find that the entire file appears as one long line.

This happens when the file uses Windows-style CRLF line endings (`\r\n`) and the viewer expects Unix LF (`\n`) only. VS Code, BBEdit, and Notepad++ all normalise line endings automatically and display which convention the file uses in the status bar.

Attachment markers and how to interpret them

When you export a chat and choose not to include media, WhatsApp inserts a placeholder into the text wherever a photo, video, voice message, sticker, or document was sent. The most common form is:

```

[15/03/2024, 09:41:22] Alice: <Media omitted>

```

On some device locales the placeholder reads differently, for example as the filename of the attachment followed by `(file attached)`. When media is included in the export, the placeholder is replaced by the filename:

```

[15/03/2024, 09:41:22] Alice: PTT-20240315-WA0003.opus (file attached)

```

The `PTT-` prefix identifies a push-to-talk voice message. `IMG-` and `VID-` prefixes identify photos and videos respectively. The files themselves sit in the same ZIP archive as `_chat.txt`.

A few things to keep in mind when reading attachment lines manually:

  • Deleted messages appear as a system line noting that a message was deleted, not as `<Media omitted>`.
  • Missed calls appear as system lines too, with no media placeholder.
  • Stickers are treated as media and produce a placeholder or filename just like images.
  • Documents use the original filename, which can contain spaces and special characters that may confuse a naive line parser.

If you are building a timeline of events from the raw file, treat every `<Media omitted>` line as a gap in the record. The timestamp and sender are still present, so you know something was sent and by whom, but the content is absent.

Best apps to read _chat.txt raw

No single editor is right for every situation. The choice depends on your operating system, the file size, and how much you need to search or filter.

Visual Studio Code (Windows, macOS, Linux, free)

VS Code is the most practical general-purpose choice. It detects UTF-8 with or without BOM, displays line endings in the status bar, and handles files of several hundred megabytes without complaint. The built-in search (`Ctrl+F` / `Cmd+F`) supports regular expressions, which is useful for filtering by sender name or date range.

Install the "Rainbow CSV" extension if you want column-style highlighting, though `_chat.txt` is not CSV, so the benefit is limited.

Notepad++ (Windows, free)

Notepad++ is lightweight and launches faster than VS Code for quick inspections. Its Encoding menu makes BOM removal a one-click operation. The multi-document interface is handy if you are comparing two exports side by side. Word-wrap mode (`View > Word wrap`) prevents long messages from running off-screen.

BBEdit (macOS, free tier available)

BBEdit has handled large text files reliably for decades. Its "Text Encoding" panel in the open dialog lets you force a specific encoding if auto-detection fails. The grep-based search and the ability to open files directly from a ZIP are practical for quick checks.

EmEditor (Windows, paid with free tier)

EmEditor is purpose-built for very large files and can edit files larger than 4 GB even on 32-bit Windows. If you are dealing with a multi-year group chat export that has grown unusually large, EmEditor is worth considering.

UltraEdit (Windows, macOS, Linux, paid)

UltraEdit is designed as an editor and viewer for large files and can open, view, edit, and save text files in excess of 4 GB. Like EmEditor, it is overkill for most `_chat.txt` files but becomes relevant at extreme scale.

For most users, VS Code or Notepad++ covers every practical need.

Why uploading to ThreadRecap is faster than reading by hand

Reading `_chat.txt` manually works for a short two-person conversation. It becomes impractical once you have a group chat running over months, a dispute where you need to locate specific messages quickly, or a meeting thread where action items are scattered across hundreds of lines.

ThreadRecap's WhatsApp chat analyser accepts the ZIP file directly. You do not need to extract `_chat.txt` first or strip the BOM — open the ZIP in your browser and the message count and date range appear before anything is sent.

The upload workflow starts on your device: you export the chat in WhatsApp, which produces a ZIP you own before anything is transmitted. Photos and documents never leave your device, and video files are never uploaded; if you include videos, your browser extracts their audio track and sends only that.

Chat text and voice message audio are stored encrypted in your account and stay there until you delete the analysis, which you can do at any time from the dashboard.

Once uploaded, ThreadRecap produces structured output that raw reading cannot match:

  • Meeting Recap and Action Items: key decisions and assigned tasks extracted from the thread.
  • Timeline view: every message in chronological order with sender attribution, searchable by keyword or date.
  • Voice message transcription: every `PTT-` file is transcribed using OpenAI's transcription models. A long voice message that would take minutes to play back becomes a searchable paragraph of text, which is what the voice message to text page is built around.
  • Evidence-ready export: structured output formatted for legal, dispute, or compliance use, with timestamps and sender names preserved exactly as they appear in the source file.
  • Conflict Resolution and Relationship Insights: pattern-level analysis across the full thread that is simply not visible when scrolling line by line.

ThreadRecap handles exports containing 75 000+ messages and ZIP files up to 2 Go, so the file size limits that can slow down a text editor are not a concern.

If you are preparing an export specifically for analysis, the guide on exporting a WhatsApp chat for analysis covers how to choose between including and excluding media, and what each choice means for the output you get.

When raw reading still makes sense

There are cases where opening `_chat.txt` directly is the right call. If you need to verify a single timestamp, check a specific sender name as it was recorded at export time, or confirm that an export completed without truncation, a text editor gives you an unmediated view of the source data.

For anything requiring cross-referencing, searching, or summarising across more than a few dozen messages, the manual approach is slower and more error-prone than structured analysis.


The `_chat.txt` file is a portable record of a WhatsApp conversation, but its value depends on reading it correctly. An editor that handles UTF-8 BOM and line endings removes the most common friction.

Understanding attachment markers prevents you from misreading gaps in the record. For anything beyond a quick check, structured analysis saves time while preserving the source text.

Vous avez l'export. Rendez-le utile.

Importez le .zip que vous venez de créer et obtenez un récapitulatif complet, des informations clés et des transcriptions de messages vocaux en quelques minutes.

Analyser votre conversation