Как правильно восстановить правильную систему кодирования

Применяется к d3.js v4

Это похоже на ответ davcs86 , но он повторно использует начальное преобразование и реализует функцию масштабирования.

// Initial transform to apply
var transform = d3.zoomIdentity.translate(200, 0).scale(1);
var zoom = d3.zoom().on("zoom", handleZoom);

var svg = d3.select("body")
  .append('svg')
  .attr('width', 800)
  .attr('height', 300)
  .style("background", "red")
  .call(zoom)                       // Adds zoom functionality
  .call(zoom.transform, transform); // Calls/inits handleZoom

var zoomable = svg
  .append("g")
  .attr("class", "zoomable")
  .attr("transform", transform);    // Applies initial transform

var circles = zoomable.append('circle')
  .attr("id", "circles")
  .attr("cx", 100)
  .attr("cy", 100)
  .attr('r', 20);

function handleZoom(){
  if (zoomable) {
    zoomable.attr("transform", d3.event.transform);
  }
};

См. его в действии: ссылка jsbin

0
задан false 21 March 2019 в 22:06
поделиться

1 ответ

no-conversion действительно означает, что буфер содержит лежащие в основе необработанные байты , а не предполагаемые символы. И когда вы меняете систему кодирования на latin-1, вы не изменяете содержимое буфера, вы просто сообщаете Emacs, что намереваетесь использовать latin-1, чтобы сохранить буфер в файл. Поэтому он жалуется на все байты, не относящиеся к ASCII, потому что latin-1 не знает, как кодировать эти байты (он только кодирует символы, которые они должны представлять, то есть кодирует их в эти байты).

Вместо этого вы хотите перезагрузить ваш файл, используя систему кодирования latin-1 (вместо no-conversion), которую вы можете сделать с помощью C-x RET r latin-1 RET.

Может быть, Emacs должен предложить пользователю вернуть буфер, когда буфер не модифицирован, а вы переходите с no-conversion на что-то другое! Я предлагаю вам M-x report-emacs-bug объяснить, почему вы нашли интерфейс запутанным.

0
ответ дан Stefan 21 March 2019 в 22:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: