何らかの理由で「è」がchar(65533)
(正しいのではなく)として表示されたため、SOからMATLABに文字列をコピーして貼り付けるのに苦労していました...char(232)
とにかく、horchlerの答えを補完するために、文字列またはセル文字列を同等のUnicode-in-HTMLに変換するための小さな変換ユーティリティをまとめました。
function html = toHTML(strings)
%% Initialize
% Basic IO check
if ~iscellstr(strings) && ~ischar(strings)
error(...
'toHTML:invalid_input',...
['Invalid input class: ''%s''.\n',...
'Supported input types are ''char'' or a ''cell'' containing ''char''.'], class(strings));
end
% Provide support for
% - Single and multiline line char arrays
% - Cellstrings
wasChar = ischar(strings);
if wasChar
if size(strings,1) > 1
strings(:, end+1) = char(10);
end
strings = {strings};
end
%% Convert all strings to their unicode representation in HTML
% Just for abbreviation
uf = {'UniformOutput',false};
% Convert all characters to their HTML unicode representation
html = cellfun(@transpose, strings, uf{:});
html = cellfun(@(x) cellstr(num2str(x(:)+0)), html, uf{:});
html = cellfun(@(x) cellfun(@(y) ['&#' strtrim(y) ';'],x, uf{:}), html, uf{:});
% Include HTML tags
html = cellfun(@(x) ['<html>' [x{:}] '</html>'], html, uf{:});
% Take care of newlining
html = regexprep(html, ' ', '<br>');
html = regexprep(html, '<br></html>$', '</html>');
% Make output type consistent with input type
if wasChar
html = [html{:}];
end
end
現在、これも FEX に提出しています。そのようなものがすでに存在するかどうか知っている人がいたら教えてください。