According to this answer https://stackoverflow.com/a/2115554/2311074 I thought that whether json_encode stores a linebreak as \n or \r\n depends on the operating system. However I discovered today that I can generate both output with json_encode on the same operating system (Ubuntu).
Consider the example
  <form id='form'>
     <textarea id='amd' name='stuff'></textarea>
  </form> 
  <button id='lol'>Press Me</button>
with jQuery
$( document ).ready(function() {
  $('#lol').click(function(){
    var text = $('#amd').val();
    $.ajax({
          type: "POST",
          url: ajax.php,
          data: {stuff: text}
      });
 });
and the following ajax.php
$text = $_POST['stuff'];
file_put_contents('test.txt', json_encode($text));
now entering the following
will write the following content in text.txt
"this is a \nbreak up"
However, if I change the data attribut in the jQUery script to
data: $('#form').serialize()
then I find the following content in the text.txt
"this is a \r\nbreak up"
Why is serialize() generating this additional \r to my linebreak \n? I am not even using windows.
