- Identify whether encoding damage begins in the source, conversion, viewer, or device.
- Test UTF-8 and cp1252 safely with a tiny punctuation sample.
- Repair encoding before smartening punctuation or running search and replace.
- Confirm the Symptom With a Small Safe Test
- Check the calibre Options Directly Related to Punctuation
- Check the Source, Operating System, and Reading Device
- Use calibre Diagnostics When the Cause Is Still Unclear
- Run a Clean Temporary Test Before Reinstalling
- Quick Fix Checklist
- Frequently Asked Questions
When curly quotes, apostrophes, ellipses, or long dashes turn into character sequences such as ’, “, â€, or black diamonds after an e-book conversion, the problem is usually character encoding rather than fonts or page layout. The source text was written using one encoding, but it was read as another. The resulting corruption is commonly called mojibake.
The safest solution is to identify where the characters first become damaged, set the correct input encoding, and convert a tiny sample before processing the complete book. Do not begin by reinstalling calibre, deleting your library, changing fonts, or replacing every suspicious character. Those actions rarely correct the underlying encoding error and can make recovery harder.

Start with free Canva bundles
Browse the freebies page to claim ready-to-use Canva bundles, then get 25% off your first premium bundle after you sign up.
Free to claim. Canva-ready. Instant access.
1. Confirm the Symptom With a Small Safe Test
First, determine whether the punctuation is damaged in the source file, during conversion, or only when the finished book is displayed. This distinction prevents unnecessary changes to calibre, your library, or your reading device.
1.1 Recognize Typical Encoding Damage
Encoding damage often follows a predictable pattern. A curly apostrophe may appear as ’, an opening double quotation mark as “, and an ellipsis as …. These sequences often indicate that UTF-8 bytes were interpreted as Windows-1252 or a related single-byte encoding.
The reverse can also happen. Text copied from an older Windows application or website may use Windows-1252, also called cp1252, but the importer may interpret it as UTF-8. Unsupported bytes can then become replacement symbols, question marks, or other incorrect characters.
If ordinary letters look correct while curly punctuation fails, suspect encoding before fonts. A missing font glyph usually appears as an empty square or placeholder, while sequences such as ’ strongly suggest that the text was decoded incorrectly.
1.2 Create a Tiny Punctuation Test
Make a copy of the source before changing anything. Then create a small TXT or HTML test containing examples such as:
“Double quotation marks”‘Single quotation marks’It’s a test.One… two… three.Chapter One — The Beginning
Save this sample using the same application and encoding as the problem file. Add it to calibre and convert it with the same settings and output format. A small test finishes quickly and makes it easier to compare one change at a time.
Success means every punctuation mark remains correct in calibre’s viewer and, if relevant, on the destination device. Once that happens, stop changing settings and apply the same confirmed configuration to a copy of the complete source.
1.3 Find the First Damaged Stage
Open the original source in a plain text editor that can display or select character encodings. Suitable tools include editors with explicit UTF-8 and Windows-1252 controls. Avoid judging the file only in a word processor because some programs silently guess or repair text while displaying it.
- Inspect the original TXT or HTML file in the plain text editor.
- Inspect the book inside calibre before creating another conversion, when the format supports editing.
- Open the newly converted output in calibre’s viewer.
- Open that same output on the reader or reading application.
If the original already contains ’, conversion settings cannot reconstruct every character reliably. Repair or reacquire the source first. If the original is correct but the converted file is wrong, focus on input encoding and conversion options. If calibre displays the result correctly but another device does not, investigate the device or transfer path instead.
2. Check the calibre Options Directly Related to Punctuation
2.1 Set the Input Character Encoding
In the conversion dialog, look under the relevant input or look-and-feel options for Input character encoding. The exact options presented can depend on the input format. This setting tells calibre how to interpret the source bytes before building the intermediate e-book content.
Try the encoding known to match the source. UTF-8 is appropriate for many modern files. Windows-1252, shown as cp1252 in many tools, is common in older Windows documents and text copied from older web pages or desktop applications. Do not choose cp1252 simply because you use Windows. Choose it only when the source was actually saved in that encoding or when a controlled test confirms it.
Convert the tiny sample after selecting an encoding. Success means curly punctuation displays correctly without creating new errors in accented letters, currency symbols, or non-English text. If punctuation improves but other characters break, stop and reconsider the source encoding rather than stacking more replacements on top.
2.2 Review TXT Import Settings
TXT files do not reliably carry formatting or encoding declarations. calibre therefore has to infer both the character encoding and the text structure. Paragraph detection, Markdown handling, and heuristic processing affect structure, but they do not repair bytes that were decoded incorrectly.
For a TXT source, first choose the correct input encoding. Then review the TXT formatting style. Use None for a controlled diagnostic if you want minimal structural interpretation. If the source intentionally uses Markdown or another supported convention, select the corresponding option after encoding is working.
Success means the punctuation and ordinary letters are correct before you judge headings, indentation, or paragraph spacing. Once the characters are correct, you can restore the appropriate structural settings.
2.3 Review HTML Encoding Declarations
An HTML file can declare its encoding in a meta element. Problems arise when the declaration is absent, incorrect, or inconsistent with the way the file was saved. For example, a page may declare UTF-8 even though its bytes are Windows-1252.
Open the HTML in a plain text editor and compare the editor’s detected encoding with the document’s declaration. If they disagree, resave a copy as UTF-8 and ensure the HTML declares UTF-8, or use calibre’s input encoding override for a controlled conversion. Keep linked images and stylesheets together if the page depends on local resources.
If you downloaded or copied the HTML from the web, remember that older web text may contain cp1252 punctuation even when surrounding systems expect UTF-8. Correct the file’s actual encoding rather than changing the declaration alone.
2.4 Separate Smartening From Encoding Repair
calibre’s Smarten punctuation option converts plain punctuation into typographic forms. For example, it can turn straight quotation marks into curly quotation marks and simple hyphens into suitable typographic punctuation. It does not decode damaged text or reverse mojibake.
If the source already contains ’, enabling smartening will not reliably turn it back into an apostrophe. In some cases it can add new typographic characters while leaving the corrupted sequences untouched, making diagnosis less clear.
During testing, disable smartening and convert the sample with the correct input encoding. Once the characters survive correctly, enable smartening only if the original contains plain punctuation that you intentionally want transformed. Review the output because automatic punctuation decisions can be imperfect around measurements, code, contractions, and unusual dialogue.
2.5 Check Saved Conversion Settings
calibre can reuse conversion settings associated with a book. A previously selected input encoding, search-and-replace rule, punctuation option, or transformation may continue influencing later attempts.
Open the conversion dialog for the affected title and inspect the settings instead of assuming they are defaults. Remove experimental search-and-replace expressions, disable unrelated transformations, and verify the input format shown at the top of the dialog. Convert to a new output or remove only the unwanted test output after preserving the original source.
Success means a clean conversion from the known-good source works without custom replacement rules. At that point, stop resetting unrelated preferences because the relevant cause has been isolated.
2.6 Distinguish Book Text From Metadata
If the title, author name, comments, tags, or series information is garbled but the chapters are correct, the problem is metadata rather than book-body conversion. Inspect the metadata in calibre and compare it with the metadata embedded in the source file.
Correct a small metadata field manually to test whether it remains intact after conversion, export, email delivery, or transfer. If downloaded metadata is introducing damaged characters, use a different metadata source or correct the affected fields before converting. Do not perform a library-wide replacement until you know which field and source caused the problem.
2.7 Test the Viewer, Editor, Plugin, and Delivery Path
Open the same output file in calibre’s viewer and another standards-compliant reading application. If only one viewer shows the problem, the file may be correct and the display software may be interpreting it incorrectly. If the calibre editor shows literal mojibake in the HTML source, the damaged characters are stored in the book.
Temporarily disable optional plugins involved in input, output, metadata, or device transfer, then repeat the tiny conversion. Also test a direct save to disk instead of emailing the book or serving it through the Content server. Email and server delivery do not normally rewrite chapter punctuation, but this test establishes whether you are opening the exact file calibre produced.
Compare file names, modification times, and locations. A common mistake is to inspect an older copy on the device while assuming it is the new test output.

3. Check the Source, Operating System, and Reading Device
3.1 Repair the Source Before Using Search and Replace
Search and replace should come after the source is decoded correctly. Replacing ’ with a curly apostrophe may appear to solve one pattern, but the same damaged document can contain many sequences for quotations, ellipses, dashes, accented letters, and symbols. Some sequences may also be ambiguous after repeated incorrect decoding.
If a plain text editor can reopen the original using its real encoding, resave a copy as UTF-8. Confirm the copy displays correctly after closing and reopening it. Then add that corrected copy to calibre and run the small conversion again.
Use calibre’s editor search and replace only for isolated leftovers after encoding is fixed. Create a checkpoint or backup first, count the matches, replace one example, and review it in context before using Replace All.
3.2 Watch for Cloud Sync and File Replacement
Cloud storage can create conflicts when the source is being edited, synchronized, and converted at nearly the same time. A sync client may restore an older copy, create a conflicted duplicate, or leave calibre reading a partially updated file.
Copy the tiny source to an ordinary local folder with a short path, such as a temporary folder in your home directory. Convert it there while cloud synchronization is not involved. If the local copy works, investigate version conflicts or synchronization status before modifying calibre.
Success means the locally stored source converts consistently more than once. You can then move the confirmed source into your normal workflow and verify that synchronization does not replace it.
3.3 Rule Out Permissions and Security Software
Permissions, antivirus tools, and controlled-folder protections are not common causes of punctuation mojibake. They can, however, prevent calibre from reading the expected source, writing a new output, or updating a temporary conversion file. This can leave you repeatedly opening an older result.
Confirm that the source is readable and that calibre can write a new output to a local folder. Check the job result for permission errors. If security software reports blocked activity, permit calibre through the product’s normal controls rather than disabling protection broadly.
Stop investigating permissions once calibre creates a fresh file with a current modification time. If that fresh file still contains mojibake, return to source encoding.
3.4 Check USB Transfer and Device Limitations
If the book is correct in calibre but wrong on a device, delete only the test copy from the device, safely disconnect it, reconnect, and transfer the known-good output again. Verify that the device is using its normal file-transfer mode and that calibre recognizes the intended storage location.
Some devices cache books or retain multiple copies with similar names. Change the test title clearly, such as Quote Encoding Test 2, so you can identify the latest file. If available, test the same EPUB or other supported format in another reading application.
A font limitation is plausible when the stored text is correct but a rare symbol appears as a blank box. It is much less plausible when punctuation becomes multi-character sequences such as “. Do not change font embedding options unless inspection confirms the underlying HTML contains the correct Unicode character.
4. Use calibre Diagnostics When the Cause Is Still Unclear
4.1 Read the Conversion Job Details
After conversion, open calibre’s Jobs area and inspect the completed job details. Look for the detected input format, warnings, input plugin activity, transformation steps, and errors. The log may reveal that calibre processed a different file or input type than expected.
Repeat the tiny conversion after changing only the input encoding. Save both logs if necessary and compare them. A useful test changes one variable, produces a new file, and records whether the symptom changed.
4.2 Generate Conversion Debug Output
For stubborn cases, conversion debug output can expose the intermediate content produced at different stages of the conversion pipeline. Choose an empty temporary folder for the debug files and run the conversion on the tiny sample.
Inspect the earliest extracted or parsed text and then the later processed output. If punctuation is already damaged at the first readable stage, the input was decoded incorrectly or the source was already corrupt. If it is correct early but damaged later, inspect conversion transformations, search-and-replace rules, and plugins.
Success is not merely a completed conversion. Success is locating the first stage where the known test character changes. Once you find that boundary, stop changing unrelated device, server, or library settings.
4.3 Use Command-Line Debugging Only When Useful
Advanced users can reproduce a conversion with ebook-convert and explicitly set the input encoding. calibre’s command-line tools also provide diagnostic options, while calibre-debug can help gather information for deeper troubleshooting. Run commands on copies, not the only version of a book.
Command-line testing is optional. It is most useful when you need a repeatable test, want to compare explicit encoding values, or need to provide a concise reproduction to a support forum. Most users can solve this problem through the graphical conversion dialog and a carefully prepared sample.
5. Run a Clean Temporary Test Before Reinstalling
Reinstalling calibre generally does not repair a source file whose bytes are being decoded with the wrong character set. Deleting the library is even less appropriate and risks losing organization, metadata work, and custom settings.
Instead, create a clean diagnostic workflow:
- Back up the original source and keep it unchanged.
- Create a tiny TXT or HTML sample containing representative punctuation.
- Save it locally, outside cloud-synchronized folders.
- Confirm its encoding in a plain text editor.
- Add it to calibre as a separate test book.
- Convert with smartening, search-and-replace, and optional plugins disabled.
- Set the input encoding explicitly when auto-detection fails.
- Open the fresh output in calibre’s viewer.
- Inspect the book’s internal text with Edit book when the format supports it.
- Transfer that exact output to the device only after it works locally.
If the clean sample works, calibre itself is functioning. Compare the successful sample with the original source, paying particular attention to encoding declarations, how the file was created, and saved conversion settings. If the clean sample fails, retain the sample and job log because they provide a focused reproduction without exposing an entire copyrighted book.
6. Quick Fix Checklist
- Confirm the problem is punctuation mojibake, not font size or layout.
- Open the source in a plain text editor and check its real encoding.
- Look for patterns such as
’,“, and…. - Resave a verified copy as UTF-8 when practical.
- For older Windows or web text, test cp1252 as the input encoding.
- Check that HTML encoding declarations match the file’s actual bytes.
- Disable Smarten punctuation while diagnosing encoding.
- Remove experimental conversion search-and-replace rules.
- Test with a tiny source containing quotes, apostrophes, dashes, and ellipses.
- Compare the source, calibre editor, calibre viewer, and device output.
- Check metadata separately when only titles or author names are affected.
- Test without optional conversion or metadata plugins.
- Use a local folder to exclude cloud-sync conflicts.
- Review job details and conversion debug output if the first failure point is unclear.
- Stop changing settings as soon as a repeatable test succeeds.
7. Frequently Asked Questions
7.1 Why do smart quotes become ’ or “ after conversion?
These sequences usually mean that text encoded as UTF-8 was interpreted as Windows-1252 or another incompatible encoding. The punctuation itself is valid, but the bytes were decoded incorrectly. Check the original in a plain text editor and set the matching input encoding during conversion.
7.2 Should I enable Smarten punctuation to fix garbled quotes?
No. Smartening changes plain punctuation into typographic punctuation. It does not repair character encoding. Fix the source encoding first. Enable smartening later only if you want calibre to transform correctly decoded straight quotes, dashes, or ellipses.
7.3 Is cp1252 always the right setting for a Windows TXT file?
No. Many modern Windows applications save text as UTF-8. cp1252 is worth testing for older Windows documents, copied web content, or files known to use that encoding. Confirm the choice with a text editor or a tiny conversion rather than relying on the operating system alone.
7.4 Can I replace all garbled sequences in the calibre editor?
You can, but only after correcting the encoding problem. Otherwise you may repair a few visible sequences while leaving other characters corrupted. Create a checkpoint, count matches, replace one example, and review the result before using a global replacement.
7.5 Why is the book correct in calibre but wrong on my reader?
You may be opening an older cached copy, a different format, or a file produced before the fix. Give the test book a distinctive title, remove only the old device copy, transfer the verified output again, and compare it in another reading application. If the book’s stored text is correct but a symbol is blank, investigate device font support.
7.6 When should I reinstall calibre?
Reinstallation is rarely justified for this symptom. First prove that a correctly encoded tiny sample fails with clean conversion settings and no optional plugins. If the sample converts properly, the installation is working and the cause lies in the source, saved book settings, a transformation, or the later viewing and transfer path.