PHP генерирует пробелы перед запуском XML [duplicate]

class MyProgram
{
  int count = 0; // non-static variable / instance variable
  public static void main (String[] args) // static method
  {
    MyProgram c = new MyProgram(); // create c as reference variable
    System.out.println(c.count); // call non-static variable using a reference variable name (c)
  }
}

Компиляторы думают: «Я не знаю, какой объект является переменной экземпляра, о которой вы говорите».

Java Online

body, html, iframe { 
  width: 100% ;
  height: 100% ;
  overflow: hidden ;
}
<iframe src="https://ideone.com/SIDcv1" ></iframe>

31
задан deceze 1 July 2009 в 08:30
поделиться

8 ответов

Вы не получите символ в редакторе, потому что вы не можете найти его в текстовых редакторах. #FEFF или #FFFE - это так называемые байтовые байты . Это изобретение Microsoft, которое следует указывать в файле Unicode, в котором хранятся многобайтовые символы.

Чтобы избавиться от него, сообщите редактору сохранить файл либо как ANSI / ISO-8859, либо как Unicode без спецификации. Если ваш редактор не может этого сделать, вам придется либо переключать редакторы (к сожалению), либо использовать какой-то инструмент усечения, например, шестнадцатеричный редактор, который позволяет вам увидеть, как выглядит файл.

В googleing, кажется, что TextWrangler имеет режим «UTF-8, no BOM». В противном случае, если вам удобно с терминалом, вы можете использовать Vim:

:set nobomb

и сохранить файл. Presto!

Символы всегда самые первые в текстовом файле. Редакторы с поддержкой спецификации не будут, как я уже упоминал, показать это вам вообще.

Приветствия,

37
ответ дан Boldewyn 23 August 2018 в 18:54
поделиться
  • 1
    Теперь это объяснило бы это, но никакого оскорбления не было. Странно, что он переводится в правильный символ в браузере. Я буду искать это ... – deceze♦ 1 July 2009 в 09:02
  • 2
    Извините, «вы этого не понимаете» не было оскорблением, оно должно заканчиваться в запятой. Мои извинения! – Boldewyn 1 July 2009 в 09:07
  • 3
    Да, это действительно так. Интересно, откуда это взялось, поскольку мой редактор (TextMate) не сохраняет спецификации ... – deceze♦ 1 July 2009 в 09:08
  • 4
    Я видел это раньше, но обычно он отображается как мусор поверх страницы. Кажется, сложнее найти, когда он находится в середине страницы ...? В любом случае, спасибо! :) – deceze♦ 1 July 2009 в 09:12
  • 5
    Это может произойти в середине страницы, когда вы используете инструкцию include PHP с включенным файлом BOM. В противном случае он обычно не должен появляться (хотя он является стандартным символом Unicode и может использоваться как таковой). – Boldewyn 1 July 2009 в 09:25

Я не пользователь Mac, но мой общий совет: когда все остальное не работает, используйте шестнадцатеричный редактор. Очень полезно в таких случаях.

См. «Сравнение шестимерных редакторов» в WikiPedia .

2
ответ дан Craig McQueen 23 August 2018 в 18:54
поделиться

Я уверен, что Textwrangler выполнит это.

EDIT: Ссылка VersionTracker , поскольку сайт Bare Bones, похоже, снова опустился.

0
ответ дан da5id 23 August 2018 в 18:54
поделиться
  1. Вставить содержимое в Notepad ++
  2. В кодировке меню -> Преобразовать в ANSI

И вам хорошо идти.

-3
ответ дан m00am 23 August 2018 в 18:54
поделиться

vi или vim будут отображаться любые символы, отличные от EOL.

1
ответ дан Matthew Scharley 23 August 2018 в 18:54
поделиться
  • 1
    Все, что может искать файлы? Я уже просмотрел все места, в которых я подозревал. – deceze♦ 1 July 2009 в 08:40
  • 2
    grep мог бы это сделать ... но с символами unicode это немного сложно, потому что вы никогда не знаете, в какую кодировку находится файл, и, следовательно, что передать grep. – Matthew Scharley 1 July 2009 в 08:42
  • 3
    У вас слишком много опыта работы с grep, это будет правильное использование? kk: trunk deceze $ grep -R '/ \ xFEFF /'. – deceze♦ 1 July 2009 в 08:52

Если вы используете Textmate, и проблема находится в файле UTF-8:

  1. Откройте файл
  2. Файл> Откроется с кодировкой> ISO-8859 -1 (Latin1)
  3. Вы должны увидеть и удалить первый символ в файле
  4. Файл> Сохранить
  5. Файл> Откроить с кодировкой> UTF8
  6. Файл> Сохранить

Он работает для меня каждый раз.

9
ответ дан Mirko 23 August 2018 в 18:54
поделиться

использовать блокнот плюс плюс .. есть возможность показать все символы

2
ответ дан Umair Ahmed 23 August 2018 в 18:54
поделиться
  • 1
    Как уже говорилось, я больше ищу инструмент Mac OS X (или UNIX). – deceze♦ 1 July 2009 в 08:34
  • 2
    yep я пропустил это ... я думаю, что видел некоторые, где его можно запустить с помощью кроссовера. не очень – Umair Ahmed 1 July 2009 в 08:37
  • 3
    Btw: Notepad ++ имеет возможность сохранять файлы Unicode без спецификации. На всякий случай вы собираетесь переключиться на Windows ;-) – Boldewyn 1 July 2009 в 12:39
  • 4
    Я запускаю notepad ++ на ubuntu, используя вино. Я не знаю, работает ли Wine на OS X. Notepad ++ является удивительным, хотя. – the0ther 13 August 2010 в 19:31
  • 5
    Я не думаю, что блокнот плюс плюс покажет «без пробелов» и другие символы пробелов, хотя он покажет возвращения каретки и линейные фиды ... Я думаю, что вам нужно кодирование переключателя, что объясняется в принятом ответе – ClearBlueSky85 4 May 2016 в 22:56

Это знак байта . В Mac OS X: откройте окно терминала, перейдите к своим источникам и введите:

grep -rn $'\xFEFF' *

Он покажет вам номера строк и имена файлов, содержащие спецификацию.

5
ответ дан Vexatus 23 August 2018 в 18:54
поделиться
  • 1
    Так как это почти наверняка первые два байта файла, проблема в том, чтобы убрать его. Я не очень разбираюсь в awk, но он должен быть однострочным с ним, чтобы удалить первые два байта файла. – Boldewyn 1 July 2009 в 09:27
Другие вопросы по тегам:

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