Custom matching seems to be the most suitable, but if that is not possible, you can possibly adapt your search queries to the use of regular expressions. This is not entirely ideal, but may be useful in some situations. At the very least, this allows you to store data in the correct format (without replacing quotes) and simply perform replacements in the search query itself:
INSERT INTO mytable VALUES
(1, 'Though this be madness, yet there is method in ''t'),
(2, 'Though this be madness, yet there is method in ’t'),
(3, 'There ’s daggers in men’s smiles'),
(4, 'There ’s daggers in men' smiles');
SELECT * FROM mytable WHERE data REGEXP 'There [\'’]+s daggers in men[\'’]+s smiles';
+
| id | data |
+
| 3 | There ’s daggers in men’s smiles |
| 4 | There ’s daggers in men smiles |
+
SELECT * FROM mytable WHERE data REGEXP 'Though this be madness, yet there is method in [\'’]+t';
+
| id | data |
+
| 1 | Though this be madness, yet there is method in 't |
| 2 | Though this be madness, yet there is method in ’t |
+