Вот альтернативное решение: если у вас есть дата в PHP как временная метка, обход, обрабатывающий ее с помощью PHP, и пусть DB позаботится о ее преобразовании с помощью функции FROM_UNIXTIME
.
mysql> insert into a_table values(FROM_UNIXTIME(1231634282));
Query OK, 1 row affected (0.00 sec)
mysql> select * from a_table;
+---------------------+
| a_date |
+---------------------+
| 2009-01-10 18:38:02 |
+---------------------+
Решение для меня было использовать git difftool.
Я написал этот инструмент https://github.com/chestozo/dmp на основе https: / /code.google.com/p/google-diff-match-patch/.
Иногда это также дает лучший diff по сравнению с git diff --color-words=.
:)
Для нескольких платформ, работающих с LANG
до C.UTF-8
(или en_US.UTF-8
и т. д.), будет работать:
$ echo '人' >test1.txt && echo '丁' >test2.txt
$ LANG=C.UTF-8 git diff --no-index --word-diff=plain --word-diff-regex=. -- test1.txt test2.txt
diff --git a/test1.txt b/test2.txt
index 3ef0891..3773917 100644
--- a/test1.txt
+++ b/test2.txt
@@ -1 +1 @@
[-人-]{+丁+}
Однако LANG
, похоже, не соблюдается на некоторых платформ (например, Git для Windows ):
$ echo '人' >test1.txt && echo '丁' >test2.txt
$ LANG=C.UTF-8 git diff --no-index --word-diff=plain --word-diff-regex=. -- test1.txt test2.txt
diff --git a/test1.txt b/test2.txt
index 3ef0891..3773917 100644
--- a/test1.txt
+++ b/test2.txt
@@ -1 +1 @@
<E4>[-<BA><BA>-]{+<B8><81>+}
Обходной путь на этих платформах заключается в предоставлении необработанных байтов для символов UTF-8 (например, $'[^\x80-\xBF][\x80-\xBF]*'
для '.'
) для git diff:
$ echo '人' >test1.txt && echo '丁' >test2.txt
$ git diff --no-index --word-diff=plain --word-diff-regex=$'[^\x80-\xBF][\x80-\xBF]*' -- test1.txt test2.txt
diff --git a/test1.txt b/test2.txt
index 3ef0891..3773917 100644
--- a/test1.txt
+++ b/test2.txt
@@ -1 +1 @@
[-人-]{+丁+}
en_US.UTF-8
, и это мало помогает. git diff --color-words=. --word-diff-regex=$'[^\x80-\xBF][\x80-\xBF]*'
хороший! спасибо) проверит!
– chestozo
13 May 2018 в 08:16
diff.wordRegex
, чтобы в будущем вы могли указать только цвет -word-diff =, а git будет использовать настроенное регулярное выражение для слова diff.
– Danny Lin
13 May 2018 в 08:22
Я видел много отчетов, xterm на самом деле не умеет печатать символы Unicode в некоторых случаях. Может быть, по крайней мере, отправная точка для решения.
git diff
знает, что имеет дело с символами 1 байт. Я не уверен, что это проблема xterm.
– chestozo
23 November 2013 в 17:56
Для меня лучшим решением для этого является установка export LESSCHARSET=utf-8
.
В этом случае обе git log -p
и git diff
отображаются без ошибок. Unicode
pager = less -rFX
в .gitconfig
, и это то, что я получаю d17oy1vhnax1f7.cloudfront.net/items/2p3703271r0m060s1J34/…
– chestozo
25 December 2016 в 21:45
git diff
и git diff --color-words=.
dropbox.com/s/2wt9iysevw2xeyn/…
– Maga Abdurakhmanov
25 December 2016 в 23:11